У меня крупномасштабное приложение с двумя типами объектов: длительная жизнь (кеш) и короткая жизнь (запрос-процесс-ответ). Теоретически, с таким типом приложения, я думаю, что можно настроить Young vs Old spaces, поэтому потребление старого пространства является постоянным, в результате чего нет полного GC.
Я изменил параметры newSize-maxNewSize, но, Старая куча продолжает расти до Full GC. После каждого полного GC потребление уменьшается до 20% (кэш занимает 20%). По какой-то причине мои объекты попадают в старое пространство. У меня есть два подозреваемых, почему они переведены в старое пространство:
-
В этой статье: http://chaoticjava.com/posts/gc-tips-and-memory-leaks/ он сказал, что если у вас есть большие объекты, они переходят прямо в Старое пространство. Это правда, и если это так, есть ли параметр параметра JVM Option, который может установить порог размера объекта для пространства Young?
-
Если я правильно понял процесс, объекты переключаются между разделами "От" От выживания "до того, как они перейдут в" Старый раздел ". Есть ли параметр, который может установить, сколько переключателей между To и From должно быть сделано, прежде чем переходить в старое пространство?
Другие советы?
Спасибо, Амар