Назад | Перейти на главную страницу

Что может привести к тому, что JBoss займет на 4 ГБ памяти больше, чем выделено?

Соответствующая часть строки запуска: java -server -Xms10G -Xmx10G -XX: PermSize = 1G -XX: MaxPermSize = 1G

В конечном итоге этот экземпляр занял 16 ГБ памяти и 10 ГБ подкачки перед тем, как убить сервер.

Есть идеи о том, что могло вызвать это?

Это единственное крупное приложение, работающее в системе RedHat с 16 ГБ ОЗУ и 10 ГБ подкачки.

Я думаю, что это могут быть беглые потоки, возможно, лучше переполнение стека о том, как профилировать использование памяти для приложения Java и искать утечки памяти.

Имейте в виду, что варианты -Xms и -Xmx предназначены только для кучи. Есть и другие вещи, которые занимают память, например, стеки потоков и т. Д. Так, может быть, были сбежавшие потоки?

Возможно, вы захотите изучить ulimit для ограничения того, что может принимать это приложение, и начать использовать что-то вроде Nagios, чтобы предупреждать вас, когда использование памяти выходит из-под контроля. Вы запускаете jvm как root?