java 不断gc原因_java垃圾回收器不停的做GC,怎么回事?

最近写了个服务器小程序,开的线程比较多,大约在1000左右吧,高峰期会更多。

今天忽然不停的GC,觉得很纳闷,不知道是怎么一回事,应该如何去做优化?

GC日志如下:一次GC的时间间隔不到一秒,每次GC的时间也不到一秒。

{Heap before GC invocations=306 (full 0):

par new generation total 511936K, used 511872K [0x000000007fff0000, 0x000000009f3f0000, 0x000000009f3f0000)

eden space 511872K, 100% used [0x000000007fff0000, 0x000000009f3d0000, 0x000000009f3d0000)

from space 64K, 0% used [0x000000009f3d0000, 0x000000009f3d0000, 0x000000009f3e0000)

to space 64K, 0% used [0x000000009f3e0000, 0x000000009f3e0000, 0x000000009f3f0000)

concurrent mark-sweep generation total 5632000K, used 145047K [0x000000009f3f0000, 0x00000001f6ff0000, 0x00000001f6ff0000)

concurrent-mark-sweep perm gen total 512000K, used 35276K [0x00000001f6ff0000, 0x00000002163f0000, 0x00000002163f0000)

158889.595: [GC 158889.595: [ParNew: 511872K->0K(511936K), 0.0029090 secs] 656919K->145050K(6143936K), 0.0030557 secs] [Times: user=0.00 sys=0.00, real=0.00 secs]

Heap after GC invocations=307 (full 0):

JVM的配置参数如下:

-Xms6000M -Xmx6000M -Xmn500M -XX:PermSize=500M -XX:MaxPermSize=500M -XX:SurvivorRatio=65536 -XX:MaxTenuringThreshold=0 -Xnoclassgc -XX:+DisableExplicitGC -XX:+UseParNewGC -XX:+UseConcMarkSweepGC -XX:+UseCMSCompactAtFullCollection -XX:CMSFullGCsBeforeCompaction=0 -XX:+CMSClassUnloadingEnabled -XX:-CMSParallelRemarkEnabled -XX:CMSInitiatingOccupancyFraction=90 -XX:SoftRefLRUPolicyMSPerMB=0 -XX:+PrintClassHistogram -XX:+PrintGCDetails -XX:+PrintGCTimeStamps -XX:+PrintHeapAtGC

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值