Това са моите настройки на Sun Hotspot 1.6 JVM heap в WebLogic 11g:
-Xms10g -Xmx10g -XX:MaxPermSize=256m -XX:+UseParNewGC -XX:ParallelGCThreads=2 -XX:+UseConcMarkSweepGC -XX:+CMSParallelRemarkEnabled -XX:ConcGCThreads=2
Това, което виждам в графиката на JVM heap free % за 24 часа, е, че основно heap free % намалява с бавна скорост, докато достигнем около 9% (отнема около 24 часа). След това системата работи с нещо, което изглежда като пълен gc и се връща на 97%.
Има ли някаква настройка, която трябва да добавя/модифицирам, която ще каже на JVM да направи този пълен GC по-рано, отколкото когато станем под 10% свободно количество? напр. някаква настройка на съотношението?
Не създава проблеми, че изчаква, докато стигнем до 9% безплатно, но прави наблюдението/известяването по-трудно. В идеалния случай искаме да останем по-високи от да речем 30% безплатни по всяко време, така че ако паднем до тези едноцифрени числа, да знаем, че има някакъв проблем, напр. изтичане на памет.
System.gc()
не изпълнява окончателно събирача на боклук, той прави предложение да се стартира. Не е детерминистично. - person matt b   schedule 11.10.201210G
пространство. По-добра индикация за изтичане е, когато пълните GC не могат да възстановят пространство или че количеството пространство, възстановено с времето, е все по-малко и по-малко - което не е толкова лесно за автоматично наблюдение. - person matt b   schedule 11.10.2012