У меня есть 7 разных java-демонов, которые я запускаю (все 7) на 3 разных серверах. Командная строка java имеет -Xmx2048m и -Xss1024k. На этих 3 серверах все 21 процесс показывает чуть менее 2,5 ГБ для размера VIRT сверху и сверху. Размер RES варьируется от 300 до 1,9 ГБ, в зависимости от того, какой демон это.
Это все, что должно быть.
Введите новый сервер. Более быстрый процессор, больше оперативной памяти (16 ГБ вместо 8 ГБ), немного более новая версия java (1.6.0_10-b33 на старых серверах, 1.6.0_31-b04 на новом сервере). Обе системы (и JVM) имеют 64 бит.
Перемещено 2 из демонов на новый сервер. На новом сервере, учитывая ту же задачу, демоны потребляют гораздо больше ЦП (примерно на одном уровне) и получают меньше. (Перемещено от 5110 процессоров на старых системах до 5620 с на новом).
Довольно много дополнительного ядра использования процессора (поток GC) и отчет 5 ГБ VIRT и 2 ГБ ВИЭ для одного демона и 10,5 ГБ VIRT и 2 ГБ RES для другого демона.
Любые идеи, из-за которых java игнорирует (или, как представляется, игнорировать, если это так) пределы памяти?