Память Java-процесса по полочкам

День 1 /  / Зал 4  /  RU /

Комментарий Программного комитета:

Феерическая расстановка точек над тем, почему Джава жрёт память. Всё, что вы хотели знать, всё, о чём догадывались, и то, что будет сниться вам в кошмарах :) Самое главное — разобраны инструменты, с помощью которых можно увидеть и пощупать потребление памяти.

Означает ли JVM-параметр -Xmx4G, что процесс займёт не более 4-х гигабайт в системе? Разумеется, нет. На что ещё уйдёт виртуальная память и, главное, сколько? Вопрос становится особенно актуальным при разделении ресурсов между несколькими процессами или при запуске Java в контейнере.

Помимо самой виртуальной машины жадными до памяти оказываются библиотеки и пользовательские приложения. Но если утечку Java-объектов обычно легко выявить из хип-дампа, то утечка нативной памяти может поставить в тупик.

В докладе мы разберём, на какие структуры виртуальной машины расходуется оперативная память, как мониторить и регулировать её потребление. Изучим различные стратегии управления виртуальной памятью, выясним, что изменилось в новых версиях JDK. Рассмотрим реальные примеры утечек нативной памяти и познакомимся с инструментами для анализа аллокаций.


Андрей Паньгин
Одноклассники

Ведущий программист в компании Одноклассники, специализирующийся на разработке высоконагруженных Java-серверов. Благодаря опыту работы в Oracle в команде HotSpot, знает JVM как свои пять пальцев и охотно делится экспертизой на конференциях. Автор проектов one-nio, async-profiler, а также лидер по ответам в категории #JVM на Stack Overflow.

Прошлые выступления спикера