Итак, у меня есть поговорка с плотными архитектурами узлов: «Большие серверы - это большие проблемы».
Я могу придумать несколько вещей, которые могут помочь.
В cassandra.yaml
проверьте эти два параметра:
concurrent_compactors: 2
compaction_throughput_mb_per_sec: 16
В частности, concurrent_compactors
является одним из тех, которые можно установить пропорционально количеству ядер ЦП. Я бы не стал go слишком высоким, но, может быть, протестирую его, увеличив в 2 раза, и посмотрю, заметите ли вы что-нибудь. Кроме того, с вашими ресурсами вы сможете установить compaction_throughput_mb_per_sec
как минимум на 256. Хорошая новость об этом в том, что вы можете установить его с помощью nodetool
эфемерно, просто чтобы попробовать.
Убедитесь, что параметры диска c оптимизированы для SSD:
disk_optimization_strategy: ssd
trickle_fsync: true
И убедитесь, что серверы настроены на использование сборщика G1G C, и вы, вероятно, могли бы позволить себе большая куча размером 32 ГБ или около того.
Также прочтите Руководство по настройке Кассандры 2.1 Эми Тоби . У нее есть много полезной информации, которая все еще применима к Кассандре 3.
TBH, хотя Алекс прав. Самый большой успех будет в корректировке определений ваших таблиц. Производительность Кассандры больше связана с определением модели данных. Если это неверно, то никакая "настройка" на стороне сервера не может помочь с этим.