У нас есть кластер Cassandra с 6 узлами, который интенсивно используется. Мы много раз сталкивались с событием остановки сборщика мусора, которое может занять до 50 секунд в наших узлах, в то время как узел Cassandra не отвечает, даже не принимает новые входы в систему.
Дополнительные детали:
- Кассандра Версия: 3.11
- Размер кучи = 12 ГБ
- Мы используем сборщик мусора G1 с настройками по умолчанию.
- Размер узлов: 4 ЦП 28 ГБ ОЗУ
- Поведение G1 GC одинаково для всех узлов.
Любая помощь будет очень высоко ценится!
Редактировать 1:
Проверяя статистику создания объектов, она совсем не выглядит здоровой.
Редактировать 2:
Я попытался использовать настройки, предложенные Крисом Лофинком, вот отчет GC:
Использование рекомендуемых настроек CMS http://gceasy.io/my-gc-report.jsp?p=c2hhcmVkLzIwMTcvMTAvOC8tLWdjLmxvZy4wLmN1cnJlbnQtLTE5LTAtNDk=
Использование рекомендуемых настроек G1 http://gceasy.io/my-gc-report.jsp?p=c2hhcmVkLzIwMTcvMTAvOC8tLWdjLmxvZy4wLmN1cnJlbnQtLTE5LTExLTE3
Поведение остается в основном таким же:
- Старый Ген начинает заполняться.
- GC не может очистить его должным образом без полного GC и события STW.
- Полный сборщик мусора начинает занимать больше времени, пока узел полностью не перестанет отвечать.
Я собираюсь получить вывод cfstats для максимального размера раздела и надгробий на чтение как можно скорее и снова отредактировать сообщение.