Я размещаю серверное Java-приложение на корневом сервере Linux.
Моя проблема в том, что иногда сервер занимает больше оперативной памяти, чем выделенный максимум , что приводит к автоматическому завершению процесса (сбою).
Это мой стартовый сценарий:
nohup java -Xmx900m -Xms900m -XX:MaxPermSize=128m -jar -Xss1m jar-file.jar &
Как видите, я также установил минимальный и максимальный объем ОЗУ (-Xms900, -Xmx900m), так что проблем быть не должно.
Кто-нибудь знает, что я делаю не так? Если да, сообщите мне и покажите «улучшенный сценарий запуска».
С наилучшими пожеланиями, Ишидрес
На самом деле Xms и Xmx определяют лимит размера кучи, но есть и другие области памяти: стек (Xss x количество потоков) + PermGen + CodeCahe (48 МБ на по умолчанию в Java 7) + Прямая память.
Как правило, они добавляют примерно 1/2 ГБ, если нет спецификаций.