CentOS 64 비트 Linux 시스템에서 jdk 1.7.0_09를 사용하고 있습니다.Old Generation이 반만 찼을 때 JVM이 지속적으로 full gc를 수행하는 이유는 무엇입니까?
VM 인수 관련 GC가
-Xmx4g -Xmn2g -XX이다 SurvivorRatio = 4 -XX : PermSize = 128m -XX :를 MaxPermSize = 128m -XX : InitialTenuringThreshold -XX = 15 : 50 = CMSWaitDuration -XX : MaxTenuringThreshold입니다 = 15 -XX : + UseConcMarkSweepGC -XX : + UseParNewGC -XX : CMSInitiatingOccupancyFraction = 80 -XX : + CMSParallelRemarkEnabled -XX :이 지속적으로 전체 GC를하고있어 ReservedCodeCacheSize = 128m
그러나
jstat -gcutil pid 1000
S0 S1 E O P YGC YGCT FGC FGCT GCT
0.00 0.00 15.62 57.52 19.90 11 2.081 11109 7454.686 7456.767
0.00 0.00 15.81 57.52 19.90 11 2.081 11109 7454.686 7456.767
0.00 0.00 15.81 57.51 19.90 11 2.081 11111 7454.892 7456.973
0.00 0.00 16.06 57.51 19.90 11 2.081 11111 7455.115 7457.196
0.00 0.00 16.06 57.51 19.90 11 2.081 11111 7455.115 7457.196
0.00 0.00 16.27 57.51 19.90 11 2.081 11111 7455.115 7457.196
0.00 0.00 16.27 57.51 19.90 11 2.081 11111 7455.115 7457.196
0.00 0.00 16.29 57.51 19.90 11 2.081 11111 7455.115 7457.196
0.00 0.00 16.29 57.51 19.90 11 2.081 11111 7455.115 7457.196
0.00 0.00 16.29 57.47 19.90 11 2.081 11113 7455.549 7457.629
0.00 0.00 16.29 57.47 19.90 11 2.081 11113 7455.549 7457.629
0.00 0.00 16.34 57.47 19.90 11 2.081 11113 7455.549 7457.629
0.00 0.00 16.34 57.47 19.90 11 2.081 11113 7455.549 7457.629
0.00 0.00 16.34 57.47 19.90 11 2.081 11113 7455.549 7457.629
0.00 0.00 16.42 57.47 19.90 11 2.081 11114 7455.549 7457.629
0.00 0.00 16.42 57.44 19.90 11 2.081 11115 7455.986 7458.067
동의합니다. 사용 된 플래그는 이것이 uggled 구성임을 나타냅니다. 정말로 "-XX : InitialTenuringThreshold = 15 -XX : CMSWaitDuration = 50 -XX : MaxTenuringThreshold = 15"을 원하면 그 이유를 알아야합니다. (그리고 나서 그들은별로 중요하지 않다는 것을 알게 될 것입니다.) –
플래그가 순전히 최선의 노력을하고, 기본적으로 이미 활성화되어 있거나, 나타나지 않는 것처럼 보이는 경우가 종종 있습니다. '-ms'와'-mx' (일반적으로'-Xms'와'-Xmx'라고 알려짐)조차도 대부분의 사람들이 생각하는 것을하지 않습니다. –
@FabianLange 우리는 gc 플래그의 다른 설정에 대해 우리의 응용 프로그램을 벤치마킹하고 마침내 이것에 정착했습니다. 일부 설정은 단지 제안 일뿐입니다. – Timmy