Влияние уплотнения и сброса на задержку записи в Кассандре - PullRequest
1 голос
/ 20 января 2012

Повлияет ли частое сжатие и очистка памяти на задержку записи в кластере?

В нашей реализации у нас есть куча семейств счетчиков [около 30], которая обновляется очень активно.Каждый запрос к нашей системе производит около 15-20 обновлений [все различия CF].

Мы можем заметить, что уплотнение и очистка очень часто происходят в наших системных журналах cassandra при интенсивном трафике.И к тому времени мы также испытываем высокую нагрузку на узлы, отвечающие за ключи [Дневная метка времени, Минутная метка времени, Часовая метка времени], и задержка записи кластера увеличивается, чем обычно [от 0,6 мс до 26 мс]

Мы имеемt коснулся любого из значений по умолчанию cassandra, и наши машины, на которых запущена cassandra, имеют достаточно хорошую конфигурацию [32G ram и 16 ядер) 4G для cassandra

Мы пытались отключить durable_writes, чтобы узнать, помогает ли это, но это не помоглоочень хорошо, как мы ожидали

1 Ответ

5 голосов
/ 25 января 2012

Краткая версия: если Cassandra настроена в соответствии с рекомендациями для commitlog на отдельном диске из каталогов данных, то очистка и сжатие должны иметь незначительное влияние.

Предостережения:

Обновления в основном связаны с процессором, а сжатие требует много ресурсов процессора. Если вы работаете на машинах или виртуальных машинах с менее чем 4 ядрами [не в вашей ситуации, а ради полноты], вы можете уменьшить значение compaction_throughput_mb_per_sec, чтобы уменьшить его.

Если у вас достаточно одновременной очистки всех CF (что может показаться так, когда вы обновляете 2/3 ваших CF с каждым запросом), Cassandra может временно блокировать запись, чтобы убедиться, что она не принимает записи быстрее чем он может очистить их (что в конечном итоге может привести к нехватке памяти и смерти). 4 ГБ - относительно небольшая куча для вставок большого объема во многих CF; Я бы предложил увеличить это значение до 8. Стоит также включить ведение журнала JVM GC, чтобы увидеть, насколько тяжело работает JVM - примеры настроек приведены в cassandra-env.sh.

Наконец, вы не упоминаете версию Cassandra, которую вы используете, но производительность надежно повышалась с каждым основным выпуском. Особенно, если вы используете что-то старше 0,8, я бы порекомендовал обновить.

...