簡體   English   中英

相同的jvm選項,tomcat和jetty的不同gc輸出

[英]same jvm options, different gc output of tomcat and jetty

我使用相同的jvm選項在tomcat和jetty中運行webapp,但是我得到了完全不同的gc輸出。

jdk: jdk1.8.0_45
tomcat: tomcat-8.0.22
jetty: jetty-9.2

jvm選項:

-Xmx4G -Xms4G -XX:+UseG1GC -XX:MaxGCPauseMillis=400 -XX:SurvivorRatio=8 
-XX:+PrintGCDateStamps -XX:+PrintGCDetails -Xloggc:/opt/logs/gc/timediff-gc-tomcat.log  -XX:+UseGCLogFileRotation
-XX:NumberOfGCLogFiles=10 -XX:GCLogFileSize=3M  -XX:+HeapDumpOnOutOfMemoryError
-XX:HeapDumpPath=/opt/logs/gc/timediff-tomcat-oom.hprof

我使用jstat -gc 8339 20s來獲取gc輸出。

tomcat下gc的輸出:

S0C    S1C    S0U    S1U      EC       EU        OC         OU       MC     MU    CCSC   CCSU   YGC     YGCT    FGC    FGCT     GCT   
0.0   19456.0  0.0   19456.0 1963008.0 454656.0 1163264.0   23188.0   41932.0 41027.3 4812.0 4617.4     12    0.419   0      0.000    0.419
0.0   19456.0  0.0   19456.0 1963008.0 523264.0 1163264.0   23188.0   41932.0 41027.3 4812.0 4617.4     12    0.419   0      0.000    0.419
0.0   19456.0  0.0   19456.0 1963008.0 586752.0 1163264.0   23188.0   41932.0 41027.3 4812.0 4617.4     12    0.419   0      0.000    0.419
0.0   19456.0  0.0   19456.0 1963008.0 651264.0 1163264.0   23188.0   41932.0 41027.3 4812.0 4617.4     12    0.419   0      0.000    0.419
0.0   19456.0  0.0   19456.0 1963008.0 715776.0 1163264.0   23188.0   41932.0 41027.3 4812.0 4617.4     12    0.419   0      0.000    0.419
0.0   19456.0  0.0   19456.0 1963008.0 780288.0 1163264.0   23188.0   41932.0 41027.3 4812.0 4617.4     12    0.419   0      0.000    0.419
0.0   19456.0  0.0   19456.0 1963008.0 843776.0 1163264.0   23188.0   41932.0 41027.3 4812.0 4617.4     12    0.419   0      0.000    0.419
0.0   19456.0  0.0   19456.0 1963008.0 908288.0 1163264.0   23188.0   41932.0 41027.3 4812.0 4617.4     12    0.419   0      0.000    0.419

碼頭下gc的輸出:

S0C    S1C    S0U    S1U      EC       EU        OC         OU       MC     MU    CCSC   CCSU   YGC     YGCT    FGC    FGCT     GCT   
0.0   8192.0  0.0   8192.0 382976.0 108544.0 3803136.0   47412.0   46208.0 45242.9 5248.0 4927.3      6    0.290   0      0.000    0.290
0.0   8192.0  0.0   8192.0 382976.0 108544.0 3803136.0   47412.0   46208.0 45242.9 5248.0 4927.3      6    0.290   0      0.000    0.290
0.0   8192.0  0.0   8192.0 382976.0 108544.0 3803136.0   47412.0   46208.0 45242.9 5248.0 4927.3      6    0.290   0      0.000    0.290
0.0   8192.0  0.0   8192.0 382976.0 112640.0 3803136.0   47412.0   46208.0 45242.9 5248.0 4927.3      6    0.290   0      0.000    0.290
0.0   8192.0  0.0   8192.0 382976.0 112640.0 3803136.0   47412.0   46208.0 45242.9 5248.0 4927.3      6    0.290   0      0.000    0.290
0.0   8192.0  0.0   8192.0 382976.0 112640.0 3803136.0   47412.0   46208.0 45242.9 5248.0 4927.3      6    0.290   0      0.000    0.290
0.0   8192.0  0.0   8192.0 382976.0 112640.0 3803136.0   47412.0   46208.0 45242.9 5248.0 4927.3      6    0.290   0      0.000    0.290

據我了解,總heap是4G; -XX:NewRatio的默認值-XX:NewRatio為2,因此新容量約為2.6G,舊容量約為1.4G; -XX:SurvivorRatio的值-XX:SurvivorRatio為8,因此伊甸園容量約為2G,幸存者容量約為260M; 所以我無法理解上面的gc日志。

有人可以幫忙嗎? 非常感謝!

據我所知, NewRatio只設置了初始的新一代尺寸。 自適應大小調整策略將根據需要調整代數,以滿足各種GC目標。

我認為你不應該開始調整那些東西,除非你的任何更高級別的目標(吞吐量,暫停時間,足跡)都沒有達到。 如果可以,請將其留給GC的啟發式方法。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM