Недавно мы перенесли наши системы с Sun Java 5 на виртуальную машину сервера Java6 (в частности, 1.6.0_16 в 32-разрядной версии Linux). Мы заметили, что поведение при сборке мусора изменилось таким образом, чтобы запустить нашу систему мониторинга предупреждений о куче.
Графики использования кучи указывают на гораздо более «резкий» профиль использования памяти, чем мы видели в Java5, поскольку виртуальная машина позволяла использовать кучу очень высоко перед запуском большого GC. Похоже, что это не проблема самой прикладной системы (на самом деле она никогда не исчерпывает память), но она дает системе мониторинга случайные ложные сигналы «волосы в огне» всякий раз, когда пик использования приближается к порогу.
Мы можем увеличить максимум кучи и надеемся, что шип не просто увеличится, но я бы предпочел выяснить, есть ли способ настроить параметры JVM таким образом, чтобы мы получить более плавный профиль, даже если мы потеряем немного производительности.
Я предполагаю, что может быть какой-то параметр -XX, который мы можем установить для достижения этой цели, но я не вижу ничего подобного в документации. Кто-нибудь знает такой вариант?