Java Heap Xms и свободная память Linux разные

У меня есть java-программа, работающая в centos Box. Мои -Xmx и -Xms установлены на 4000 Мб.

Программа работает нормально.

Но когда я делаю free -m, используемая память отображается как 506 МБ. Насколько я понимаю, память XMS должна быть зарезервирована для JVM.Why does free command not showing the java used memory ?

Я также сделал jstat -gccapacity $ (pidof java), и там NGCMN и NGCMX обновлены и имеют одинаковое значение? Любая поддержка будет полезна. Я запускаю свою программу как java -Xms41000m -Xmx42000m -jar


person melvil james    schedule 26.02.2018    source источник


Ответы (1)


Даже когда -Xmx и -Xms установлены на одно и то же значение, пространство, зарезервированное для Java Heap, не сразу выделяется в ОЗУ.

Операционная система обычно лениво выделяет физическую память, только при первом обращении к виртуальной странице. Таким образом, хотя неиспользуемая часть Java Heap не затронута, она на самом деле не будет потреблять память.

Вы можете использовать параметр -XX:+AlwaysPreTouch, чтобы принудительно коснуться всех страниц кучи при запуске JVM.

person apangin    schedule 27.02.2018