Алексей Помогаев: pmap показал сколько памяти и какой файл (?) её потребляет. Много записей с [anon]. Пока не знаю, что это такое. Понял, что тема эта довольно обширная и много чего я не понимаю. Изначально думал, что проще будет.
На tomcat'е крутиться моё приложение на Struts2 и Shiro, ну и mysql-connector тоже там.
Разбираться с памятью начал из-за хостинга, потом решил переползти на VPS на VMware, поэтому проблемы с ограничением памяти ушли на второй план.
Алексей Помогаев: Спасибо за ссылку. Похоже это то, что нужно, но статья там уж очень объёмная, да ещё и на английском... Жалко что оставили комментарий, а не ответ, а то я бы отметил решение.
jVisualVM не хочет открывать файл с дампом, но другие утилиты говорят, что объекты в этом дампе занимают всего 32Мб. Я там понял, что это именно дамп heap-области. Если бы там была утечка, то приложение бы падало в OOM, ведь я его сильно ограничил. Приложение распухает за счёт других областей памяти... либо я просто не умею пользоваться предложенными инструментами.
Снял дамп, после нескольких минут активной работы с приложением. При снятии дампа процесс java занимал 300Мб памяти, согласно статистике Tomcat'а использовано было всего 64Мб (Heap + PermGen + CodeCache). Открыл дамп в jVisualVM и там указано "Total bytes: 31 966 394". Подозреваю, что анализом одного лишь heap не обойтись.
Что интересно под виндой в диспетчере задач java-процесса занимает мало памяти - порядка 64Мб, как и положено. Может всё-таки дело не в утечках, а в какой-то области памяти типа кеша, про которую я ещё не знаю.
Написано
Войдите на сайт
Чтобы задать вопрос и получить на него квалифицированный ответ.
На tomcat'е крутиться моё приложение на Struts2 и Shiro, ну и mysql-connector тоже там.
Разбираться с памятью начал из-за хостинга, потом решил переползти на VPS на VMware, поэтому проблемы с ограничением памяти ушли на второй план.