Как узнать память, используемую программой Java

У меня есть программа, которая работает на сервере (используя Jetty). Я тестирую это прямо сейчас. Для этого я использую платформу для стресс-тестов под названием Gatling. Для мониторинга я использую jconsole, который должен показывать мне память, процессор... использование JVM на удаленном сервере. Однако при выполнении моих тестов jconsole показывает, что используется 500 Mo, но использование команды top на моем сервере показывает, что процесс java использует почти 1 гигабайт.

PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND                                                                                                                                                  
2328 ubuntu    20   0 2627m 942m  12m S 98.9 57.0  57:33.23 java      

Ну, у меня проблемы с интерпретацией этих результатов, я должен что-то неправильно понять, но не могу понять, что.

Любая помощь будет здорово, Ура


person rmonjo    schedule 06.12.2012    source источник


Ответы (1)


память, используемая процессом java, состоит из

  • куча пространства (500 мб в вашем случае)
  • размер permgen, который зависит от ваших настроек, по умолчанию должен быть 64 МБ.
  • размер стека
  • Сам размер процесса JVM

взгляните на ссылку для получения дополнительной информации.

person jdevelop    schedule 06.12.2012