待ち時間を最適化するアプリケーションがありますので、フルGCでの平均時間を短縮したいと考えています。 "XX:+ UseParallelGC" とこれは私たちが見たものである。"-XX:+ UseParNewGC -XX:+ UseConcMarkSweepGC"に切り替わり、フルGCが発生する
[myhost ~]$ /usr/local/jdk7/bin/jstat -gcutil 9793 1000
S0 S1 E O P YGC YGCT FGC FGCT GCT
0.00 49.57 95.93 93.32 99.48 10086 390.628 387 1005.334 1395.962
56.99 0.00 7.42 93.32 99.48 10087 390.691 387 1005.334 1396.025
56.99 0.00 22.19 93.32 99.49 10087 390.691 387 1005.334 1396.025
56.99 0.00 36.28 93.32 99.49 10087 390.691 387 1005.334 1396.025
[myhost ~]$ ps -p 9793 -o etime=
4-12:40:52
我々が使用に切り替えると、 "-XX:+ UseParNewGC -XXを:+ UseConcMarkSweepGCを" 私たちは多くのフルGCを参照してください。
[myhost]$ /usr/local/jdk7/bin/jstat -gcutil 2514 1000
S0 S1 E O P YGC YGCT FGC FGCT GCT
0.00 100.00 100.00 99.62 24.20 716 28.151 24 44.250 72.401
0.00 100.00 100.00 99.62 24.20 716 28.151 24 44.250 72.401
0.00 100.00 100.00 99.62 24.20 716 28.151 24 44.250 72.401
0.00 100.00 100.00 99.62 24.20 716 28.151 24 44.250 72.401
0.00 100.00 100.00 99.62 24.20 716 28.151 24 44.250 72.401
0.00 100.00 100.00 99.62 24.20 716 28.151 24 44.250 72.401
0.00 100.00 100.00 99.62 24.20 716 28.151 24 44.250 72.401
0.00 100.00 100.00 99.62 24.20 716 28.151 24 44.250 72.401
0.00 100.00 100.00 99.62 24.20 716 28.151 24 44.250 72.401
0.00 100.00 100.00 99.62 24.19 716 28.151 24 44.250 72.401
0.00 100.00 100.00 99.62 24.19 716 28.151 24 44.250 72.401
0.00 0.00 5.92 99.44 24.19 716 28.151 24 56.361 84.512
100.00 0.00 100.00 99.66 24.19 718 28.221 26 56.417 84.638
100.00 0.00 100.00 99.66 24.19 718 28.221 26 56.417 84.638
100.00 0.00 100.00 99.66 24.19 718 28.221 26 56.417 84.638
100.00 0.00 100.00 99.66 24.19 718 28.221 26 56.417 84.638
100.00 0.00 100.00 99.66 24.19 718 28.221 26 56.417 84.638
100.00 0.00 100.00 99.66 24.19 718 28.221 26 56.417 84.638
100.00 0.00 100.00 99.66 24.19 718 28.221 26 56.417 84.638
100.00 0.00 100.00 99.66 24.19 718 28.221 26 56.417 84.638
100.00 0.00 100.00 99.66 24.19 718 28.221 26 56.417 84.638
100.00 0.00 100.00 99.66 24.19 718 28.221 26 56.417 84.638
100.00 0.00 100.00 99.66 24.19 718 28.221 26 56.417 84.638
100.00 0.00 100.00 99.66 24.19 718 28.221 26 56.417 84.638
100.00 0.00 100.00 99.66 24.19 718 28.221 26 56.417 84.638
100.00 0.00 34.98 99.87 24.20 720 28.319 27 68.708 97.026
100.00 0.00 100.00 99.87 24.20 721 28.319 28 68.708 97.026
100.00 0.00 100.00 99.87 24.20 721 28.319 28 68.708 97.026
100.00 0.00 100.00 99.87 24.20 721 28.319 28 68.708 97.026
100.00 0.00 100.00 99.87 24.20 721 28.319 28 68.708 97.026
私たちは、JDKを使用している
-Xms256m -Xmx8192m -XX:PermSize=128m -XX:MaxPermSize=1024m
:
[myhost ~]$ /usr/local/jdk7/bin/java -XX:+PrintCommandLineFlags -version
-XX:InitialHeapSize=261346688 -XX:MaxHeapSize=4181547008 -XX:+PrintCommandLineFlags -XX:+UseCompressedOops -XX:+UseParallelGC
java version "1.7.0_80"
Java(TM) SE Runtime Environment (build 1.7.0_80-b15)
Java HotSpot(TM) 64-Bit Server VM (build 24.80-b11, mixed mode)
は、これが私たちのヒープの設定です
最初のインスタンスの稼働時間は4日以上です。 2番目のインスタンスはほんの数分しかなかった。巨大な一時停止を伴う完全なGCを頻繁に行っていることに気がついたので、設定を元に戻しました。
GCの統計情報が壁から外れないように、ここで調整する必要があるのは何ですか?
あなたは、Java 7にバインドされていますか? gcを一時停止しようとしている場合は、G1GCが良い賭けになるかもしれません – Rogue
ええ、今のところJava 7にかなり縛られています。 – fruitJuice