Я запускаю загрузку с Tomcat 6, работающей на Java 6. Я хочу собрать кучу кучи Java, когда сервер Tomcat находится под нагрузкой. Обычно я использую jmap -dump для сбора моих кучи.Сбор Java heapdump под загрузкой
Однако, когда я пытаюсь это сделать, когда Tomcat обрабатывает высокую нагрузку, я нахожу, что коллекция heapdump терпит неудачу.
Является ли jmap лучшим инструментом для сбора кучи кучи из процесса под нагрузкой? Каковы возможные причины, из-за которых jmap не сможет собрать heapdump?
Если jmap не лучший инструмент - что лучше?
Это вполне приемлемо для меня для jmap (или какого-либо другого инструмента), чтобы остановить мир в процессе Java, когда выполняется сброс кучи.
Вы пытались подключить VisualVM к VM и создать HeapDump, используя это? –
Это не идеально для меня, поскольку мой Tomcat работает на удаленном сервере Linux. VisualVM включает поддержку удаленных дампов кучи, но для этого требуется открыть порт JMX при запуске JVM. – mchr
http://stackoverflow.com/questions/20235802/ways-how-to-get-heap-dump-from-running-tomcat-7 содержит более подробные ответы. – Vadzim