Jac*_*ack 4 java garbage-collection jvm
这是我的JVM参数:
> /usr/local/java/bin/java -Xloggc:log/gc.log -XX:+UseConcMarkSweepGC -XX:CMSInitiatingOccupancyFraction=70 -XX:PermSize=64m -XX:MaxPermSize=64m -Xss128K -server -Xmn1024m -Xms3027m -Xmx3027m -Dresin.home=/usr/local/resin
Run Code Online (Sandbox Code Playgroud)
我用的是Resin,上面是Resin start JVM参数,下面是我用jstat -gcutil pid 1000 1000时的GC输出
S0 S1 E O P YGC YGCT FGC FGCT GCT
0.00 1.60 46.21 25.62 21.69 72639 941.082 31 0.275 941.357
1.51 0.00 51.91 25.63 21.69 72640 941.093 31 0.275 941.368
0.00 1.87 62.96 25.64 21.69 72641 941.104 31 0.275 941.379
1.51 0.00 86.39 25.65 21.69 72642 941.114 31 0.275 941.389
0.00 1.56 94.28 25.65 21.69 72643 941.126 31 0.275 941.401
0.00 1.45 5.03 25.67 21.69 72645 941.146 31 0.275 941.421
1.74 0.00 18.76 25.68 21.69 72646 941.158 31 0.275 941.433
0.00 1.85 37.51 25.69 21.69 72647 941.169 31 0.275 941.443
1.59 0.00 53.58 25.70 21.69 72648 941.180 31 0.275 941.455
0.00 1.74 74.02 25.71 21.69 72649 941.192 31 0.275 941.467
Run Code Online (Sandbox Code Playgroud)
我们每秒可以找到一次minor GC,我觉得它很频繁,因为我的新Edanz大小是1g。那么为什么这么频繁呢,或者这是正常的事情?
要么您的 Eden 大小不是 1 GB,要么您正在创建令人难以置信的垃圾。由于您似乎没有设置 Eden 大小,因此怀疑它比您想象的要小得多。
尝试使用jstat -gccause来查看尺寸。
我怀疑您一直在阅读http://www.caucho.com/resin-3.0/performance/jvm-tuning.xtp,其中错误地说明了-Xmn设置伊甸园空间。;)
该-Xmx选项设置最大总堆大小(年轻和年老)
该-Xmn选项设置由伊甸园空间和两个幸存者空间组成的年轻代的大小。由于您的幸存者空间似乎不是很满,我怀疑它们占了年轻代 1 G 的大部分。
http://www.oracle.com/technetwork/java/javase/tech/exactoptions-jsp-141536.html
尝试将 设置为-XX:SurvivorRatio=10 之类的内容,1 GB 中的大部分将是 Eden 空间。
http://www.oracle.com/technetwork/java/javase/tech/vmoptions-jsp-140102.html
| 归档时间: |
|
| 查看次数: |
6606 次 |
| 最近记录: |