Z Сборщик мусора (ZGC) в Java VM
Z Сборщик мусора (ZGC, Z Garbage Collector) - это масштабируемый сборщик мусора с малой задержкой. ZGC выполняет всю дорогостоящую работу конкурентно, не останавливая выполнение потоков приложений более чем на 10 мс, что делает его подходящим для приложений, требующих низкой задержки и/или использующих очень большую кучу (мульти-терабайты).
Z Garbage Collector доступен в качестве экспериментальной функции и включен с параметрами командной строки -XX:+UnlockExperimentalVMOptions -XX:+UseZGC.
Установка размера кучи
Наиболее важным параметром настройки для ZGC является установка максимального размера кучи (-Xmx). Поскольку ZGC - это конкурентный коллектор, необходимо выбрать максимальный размер кучи, чтобы: 1) куча могла вместить живой набор вашего приложения, и 2) было достаточно места в куче, чтобы можно было обслуживать выделения, пока GC работает. Сколько необходимо запаса, очень сильно зависит от скорости распределения и реального размера приложения. В общем, чем больше памяти вы отдаете ZGC, тем лучше. Но в то же время тратить память нежелательно, поэтому все дело в поиске баланса между использованием памяти и частотой работы GC.
Установка количества конкурентных потоков GC
Второй вариант настройки, на который можно обратить внимание, - это установка количества конкурентных потоков GC (-XX:ConcGCThreads). У ZGC есть эвристика для автоматического выбора этого числа. Эта эвристика обычно работает хорошо, но в зависимости от характеристик приложения это может потребоваться скорректировать. Эта опция по существу определяет, сколько процессорного времени должно быть предоставлено GC. Дайте ему слишком много, и GC будет красть слишком много процессорного времени из приложения. Дайте ему слишком мало, и приложение может выделять мусор быстрее, чем GC сможет его собрать.
Читайте также:
- Доступные сборщики мусора в Java
- Преимущественно конкурентные сборщики мусора в Java VM
- Параллельный сборщик мусора в Java
- Сборщик Concurrent Mark Sweep (CMS) в Java VM
- Сборщик мусора Garbage-First (G1) в Java VM
Комментарии
Отправить комментарий