2016-02-03 2 views
1

Я играл с инструментом cassandra-stress на моем собственном ноутбуке (8 ядер, 16 ГБ) с Cassandra 2.2.3, установленным из коробки с имеющейся конфигурацией запаса. Я делал то, что было описано здесь:Размер и производительность раздела Cassandra?

http://www.datastax.com/dev/blog/improved-cassandra-2-1-stress-tool-benchmark-any-schema

и измерения его производительности вставки.

Мои наблюдения были:

  • с использованием кода из https://gist.github.com/tjake/fb166a659e8fe4c8d4a3 без каких-либо изменений, которые я имел ~ 7000 вставок/сек.
  • при изменении строки 35 в приведенном выше коде (кластер: фиксированный (1000)) до «cluster: fixed (100)», i. е. настраивая распределение тестовых данных на 100 кластеризационных клавиш вместо 1000, производительность повышалась до ~ 11000 вставок/сек.
  • при настройке на 5000 кластеров на каждую секцию производительность снижалась до вставки/сек

В документации указывается, однако, что Cassandra может поддерживать до 2 миллиардов строк на раздел. Мне не нужно столько, но я не понимаю, как только 5000 записей на раздел могут замедлить запись в 10 раз, или я чего-то не хватает?

ответ

0

Поддержка немного отличается от «наилучшего исполнения». У вас могут быть очень широкие разделы, но главное правило - попытаться удержать их под 100 МБ по разным причинам. Некоторые операции могут выполняться более эффективно, когда весь раздел может быть сохранен в памяти.

В качестве примера (это старый пример, это полный выпуск без выпусков 2.0, где все однопроходное), но в некоторых версиях, когда размер составляет> 64 МБ, уплотнение имеет двухпроходный процесс, который вдвое сокращает пропускную способность уплотнения. Он по-прежнему работал с огромными разделами. Я видел много мульти-gb, которые работали отлично. но системы с огромными перегородками были трудными для работы с оперативным управлением (управление уплотнениями/ремонт/gcs).

Я бы сказал, что целевое правило эмпирического изначального 100mb и проверить оттуда, чтобы найти собственный оптимальный. Вещи всегда будут вести себя по-разному, основываясь на прецеденте, чтобы получить максимальную отдачу от узла, что лучше всего сделать, это некоторые ориентиры, наиболее близкие к тому, что вы собираетесь делать (это относится ко всем системам). Это похоже на то, что вы уже делаете, так что определенно на правильном пути.

Смежные вопросы