Соответствующая часть строки запуска: java -server -Xms10G -Xmx10G -XX: PermSize = 1G -XX: MaxPermSize = 1G
В конечном итоге этот экземпляр занял 16 ГБ памяти и 10 ГБ подкачки перед тем, как убить сервер.
Есть идеи о том, что могло вызвать это?
Это единственное крупное приложение, работающее в системе RedHat с 16 ГБ ОЗУ и 10 ГБ подкачки.
Я думаю, что это могут быть беглые потоки, возможно, лучше переполнение стека о том, как профилировать использование памяти для приложения Java и искать утечки памяти.
Имейте в виду, что варианты -Xms
и -Xmx
предназначены только для кучи. Есть и другие вещи, которые занимают память, например, стеки потоков и т. Д. Так, может быть, были сбежавшие потоки?
Возможно, вы захотите изучить ulimit для ограничения того, что может принимать это приложение, и начать использовать что-то вроде Nagios, чтобы предупреждать вас, когда использование памяти выходит из-под контроля. Вы запускаете jvm как root?