У меня есть шесть узлов кластера Cassandra, в которых размещается большое семейство столбцов (таблица cql), которое является неизменным (потому что это своего рода таблица истории с точки зрения приложения).Такая таблица содержит около 400Go сжатых данных, что не так уж и много!
Так что после усечения таблицы, а затем загрузки в нее данных истории приложения, я запускаю nodetool compact на каждом узле, чтобы обеспечить лучшую производительность чтения за счет уменьшения количества SSTables.Стратегия сжатия: STCS .
После запуска nodetool compact я запускаю nodetool compactionstats , чтобы следить за ходом уплотнения:
id compaction type keyspace table completed total unit progress
xxx Compaction mykeyspace mytable 3.65 GiB 1.11 TiB bytes 0.32%
Через часов У меня на том же узле:
id compaction type keyspace table completed total unit progress
xxx Compaction mykeyspace mytable 4.08 GiB 1.11 TiB bytes 0.36%
Так что процесс сжатия, кажется, работает, но он ужасно медленный .
Даже с nodetool setcompactionthreshold - 0 , сжатие остается ужасно медленным.Более того, CPU , кажется, используется для 100% из-за этого уплотнения.
Вопросы:
- Какие параметры конфигурации я могу настроить, чтобы повысить производительность уплотнения?
- Может ли 100% ЦП при сжатии быть связан с давлением ГХ?
- Если уплотнение происходит слишком медленно, это важнодобавить больше узлов или добавить больше ЦП / ОЗУ для каждого узла?Может ли это помочь?