Отмена текущих работ по уплотнению в Кассандре
У меня есть 3 узла кластера. 2 из 3 узлов показывают 100% загрузку ЦП.
Кажется, мы не звонили repair
а также cleanup
после изменения уровня согласованности (или мы назвали его слишком поздно, или он не завершился)
Теперь у нас есть более 100 тысяч задач, ожидающих уплотнения. И они кушают 100% CPU.
Я пытался следовать
nodetool stop -- COMPACTION
nodetool stop -- INDEX_BUILD
nodetool stop -- VALIDATION
nodetool stop -- CLEANUP
nodetool stop -- SCRUB
Без изменений. Никаких ошибок тоже нет.
Единственное сообщение, которое я получил, было
No files to compact for user defined compaction
В чем проблема? Как я могу отказаться от работы?
1 ответ
Призвание nodetool stop COMPACTION
остановит текущие уплотнения. Если вы не хотите запускать новые уплотнения, используйте nodetool disableautocompaction
, Может тогда проверить с nodetool compactionstats
Я уверен, что это не ваша проблема, однако. При 100 000 ожидающих уплотнений у вас будет слишком много sstables. Ваш узел безнадежно отстал. Любые чтения вообще вызовут огромную нагрузку. Кроме того, если у вас нет огромной кучи, просто попытка чтения из них, вероятно, приведет к тому, что вам не хватит места в куче и проблем с сборкой мусора. GC, вероятно, являются причиной вашей высокой нагрузки, если вы проверяете время своего ЦП, тратится ли оно на IO, вероятно, на чтение или потоковую передачу, если оно находится в sys/usr, это, вероятно, GC. Если это проблема GC, вы можете взять дамп кучи и проверить, что занимает все пространство.
С 100k позади вашего узла, вероятно, никогда не восстановится самостоятельно. Ваша лучшая ставка, вероятно, будет одним из:
- Замените это или даже сделайте, чтобы это заменило себя.
- удалить его из кластера с помощью
nodetool disablebinary/disablethrift/disablegossip
затем используйтеnodetool compact
заставить компактировать все sstables. В зависимости от версии и стратегии сжатия она может не работать, но вы можете использовать jmx для локального изменения стратегии сжатия для этого узла только на STCS, чтобы он работал. Если это не может быть выполнено в окне с подсказкой, то не стоит пытаться снова сделать ваш кластер согласованным. Также это будет работать только в том случае, если нагрузка снижается при удалении узла из кластера. - Настройте мониторинг и оповещения и никогда не позволяйте этому отстать снова. Target sub 100 ожидающих уплотнений.