我对年轻的gc造成的长时间服务暂停问题感到困扰,其中gc日志之一是:
2018-07-04T22:01:09.296+0800: 12677.097: [GC (Allocation Failure) 2018-07-04T22:01:09.297+0800: 12677.098: [ParNew: 920038K->47441K(943744K), 0.7193147 secs] 2038512K->1187779K(4089472K), 0.7204508 secs] [Times: user=0.29 sys=0.72, real=0.72 secs]
暂停可能在一个小时内发生一次服务时间,服务器的负载始终很低,通常小于0.1,内存足够,没有发生交换,我已经搜索了这个较长的sys time问题,仅发现{{3} } 其中有两个原因:
但是我不认为它涵盖所有情况。因为我有另一个Java服务,该服务需要在同一服务器上运行更多的堆,而不会在该服务器上受苦。
我的系统是centos 6,内核版本是2.6.32-696.6.3.el6.x86_64,jdk是jdk1.8.0_65,主要的jvm选项是:
-XX:MetaspaceSize = 256M -XX:MaxMetaspaceSize = 256M -Xms4g -Xmx4g -Xmn1g -Xss256k -XX:SurvivorRatio = 8 -XX:MaxTenuringThreshold = 8 -XX:ParallelGCThreads = 8 -XX:+ UseConcMarkSweepGC -XX:+ UseParNewGC
有什么建议吗?谢谢!
编辑:
分页日志:
09:50:01 PM 2.36 573.77 295.95 0.04 636.73 0.00 0.00 0.00 0.00
10:00:01 PM pgpgin/s pgpgout/s fault/s majflt/s pgfree/s pgscank/s pgscand/s pgsteal/s %vmeff
10:00:01 PM 5.39 577.19 496.32 0.08 913.33 0.00 0.00 0.00 0.00
10:10:01 PM 48.39 1425.40 519.28 0.24 1060.78 0.00 18.63 18.61 99.89
10:20:01 PM 1.57 1156.95 386.99 0.02 941.61 104.35 8.11 112.41 99.96
和自由输出:
total used free shared buffers cached
Mem: 65858212 64025056 1833156 0 159476 32796852
-/+ buffers/cache: 31068728 34789484
Swap: 67108860 0 67108860