Соответствующая настройка JVM / GC для JVM 4 ГБ с кешем 3 ГБ

Я ищу подходящие параметры для настройки JVM для веб-приложения . Я читал о старом / молодом / перманентном поколении, но у меня проблемы с использованием этих параметров в лучшем случае для этой конфигурации.

Из 4 ГБ около 3 ГБ используются для кэша (аппликативный кеш с использованием EhCache ), поэтому я ищу лучшую настройку с учетом этого. К вашему сведению, кеш статичен в течение всего времени существования приложения (загружается с диска, никогда не истекает), но активно используется.

Я уже профилировал свое приложение , и я провел оптимизацию в отношении запросов к БД, архитектуры приложения, размера кэша и т. Д. Я просто ищу здесь советы по настройке JVM . Я измерил 99% пропускную способность для сборщика мусора и 6–8-секундные паузы при запуске полного сборщика мусора (примерно раз в 1/2 часа).

Вот текущие параметры JVM:

-XX:+UseParallelGC -XX:+AggressiveHeap -Xms2048m -Xmx4096m
-XX:NewSize=64m -XX:PermSize=64m -XX:MaxPermSize=512m
-verbose:gc -XX:+PrintGCDetails -Xloggc:gc.log

Эти параметры могут быть полностью отключены, потому что они были записаны давно ... До того, как приложение стало таким большим.

Я использую 64-разрядную версию Java 1.5.

Видите ли вы какие-либо возможные улучшения?

Редактировать: у машины 4 ядра.

7
задан Matthieu Napoli 10 January 2012 в 13:36
поделиться