Серверное приложение Java занимает больше оперативной памяти, чем выделено максимум!

Я размещаю серверное Java-приложение на корневом сервере Linux.

Моя проблема в том, что иногда сервер занимает больше оперативной памяти, чем выделенный максимум , что приводит к автоматическому завершению процесса (сбою).

Это мой стартовый сценарий:

nohup java -Xmx900m -Xms900m -XX:MaxPermSize=128m -jar -Xss1m jar-file.jar &

Как видите, я также установил минимальный и максимальный объем ОЗУ (-Xms900, -Xmx900m), так что проблем быть не должно.

Кто-нибудь знает, что я делаю не так? Если да, сообщите мне и покажите «улучшенный сценарий запуска».

С наилучшими пожеланиями, Ишидрес

0
06.02.2017, 20:15
1 ответ

На самом деле Xms и Xmx определяют лимит размера кучи, но есть и другие области памяти: стек (Xss x количество потоков) + PermGen + CodeCahe (48 МБ на по умолчанию в Java 7) + Прямая память.

Как правило, они добавляют примерно 1/2 ГБ, если нет спецификаций.

1
28.01.2020, 02:46

Теги

Похожие вопросы