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