Нашему приложению требуется очень большой объем памяти, так как оно работает с очень большими данными. Поэтому мы увеличили максимальный размер кучи до 12 ГБ (-Xmx).
Ниже приведены сведения о среде.
OS - Linux 2.6.18-164.11.1.el5
JBoss - 5.0.0.GA
VM Version - 16.0-b13 Sun JVM
JDK - 1.6.0_18
У нас есть вышеупомянутые параметры env & configuration в нашем QA & prod. В QA у нас есть максимальный размер PS Old Gen (память кучи), выделенный как 8,67 ГБ, тогда как в Prod это всего 8 ГБ.
В Prod для конкретного задания Old Gen Heap достигает 8 ГБ, зависает там, и веб-URL становится недоступным. Сервер выходит из строя. Но в QA он также достигает 8,67 ГБ, но выполняется полный сборщик мусора и возвращается к 6,5 ГБ или что-то в этом роде. Здесь его не повесят.
Мы не смогли придумать решение для этого, потому что и среда, и конфигурация на обоих устройствах одинаковы.
У меня здесь 3 вопроса,
2/3 максимальной кучи будет выделено старый / постоянный ген. Если это так почему это 8ГБ в одном месте и 8,67ГБ в другом месте?
Как обеспечить правильное соотношение для Новых и владение в данном случае (12 ГБ)?
Почему он полностью собран в одном месте и не в другом?
Любая помощь была бы действительно заметна. Спасибо.
Пожалуйста, дайте мне знать, если вам нужна дополнительная информация по env или conf.