Я хочу выяснить, почему использование кучи JVM на узле Elasticsearch остается стабильно выше 80%. Для этого я беру кучу отвалов, запустивКак свалить кучу в окнах с минимальным временем простоя?
jmap.exe -heap:format=b 5348
(5348 - это идентификатор процесса). Затем я смогу проанализировать дамп с помощью VisualVM.
Проблема заключается в том, что jmap
останавливает JVM при съемке дампа, поэтому узел в основном отключается в течение примерно 5 минут.
This article предлагает более быстрый подход, основанный на использовании coredump с gdb
в Linux. Я уже пробовал WinDbg, который создал основной дамп, но я не мог использовать его в VisualVM.
Есть ли аналогичный подход для Windows? Как можно взять кучи кучи в считанные секунды, а не минуты?
Я бы удостоверился, что: а) вы используете двоичный режим; б) ваша куча как можно меньше, чтобы начать, например. минимизируйте размер кучи, запускайте полный GC перед съемкой. –
Привет, Питер. Я использую двоичный режим, см. Мой отредактированный вопрос и жаль путаницы. Я не могу иметь меньшую кучу, так как это производственная машина, работающая с большим количеством данных. –
Сброс кучи не будет дешевым, так как ему придется остановить JVM, чтобы получить все данные в последовательном снимке. –