Вопрос

У меня есть сервер приложений TOMCAT, который настроен для создания дамп памяти на OOM, и он начинается с -xMX1024M, поэтому для него должен быть доступен гигабайт.

Теперь я нашел один такой дамп, и он содержит только 260 МБ неоправданной памяти. Как это возможно, что дамп намного меньше, чем размер, который он должен иметь в наличии?

Это было полезно?

Решение

Permgen Space управляется независимо от кучи и может закончиться, даже если в целом есть много бесплатной памяти. Некоторые веб-каркасы (особенно JSF) являются настоящими свиньями, и он легко приведет к конфигурации по умолчанию. Его можно увеличить с -xx: maxpermsize = ### м

Помните, что системное пространство ограничено суммой кучи и Permgen, поэтому вы можете потреблять меньшего количества общих ресурсов, прежде чем начать получать невозможно создать нативную нить OOM исключение, если вы не уменьшите кучу на сумму Prureger.

Другие советы

Только информация о использовании выделенной памяти будет выброшена в файл. Куча Dump не является двоичным изображением вашей кучи, он содержит информацию о типах данных и т. Д. и может превышать вашу доступную память.

Формат файла Heapdump Text (Classic)

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top