Я немного поработал с Кассандрой и следовал советам по тестированию, которые можно найти по следующей ссылке:
http://www.datastax.com/dev/blog/how-not-to-benchmark-cassandra
У меня есть 4 узла, на которых запущена Cassandra, и 2 разных узла, питающих кластер с помощью собственного инструмента тестирования производительности cassandra-stress. Я понимаю, что из-за LSM-природы Cassandra пишет, что они вряд ли когда-либо будут привязаны к вводу-выводу, однако при чтении я ожидал, что смогу усилить кластер таким образом, чтобы он был привязан к вводу-выводу. Пока мне не удалось даже приблизиться к тому, чтобы сделать ввод-вывод узким местом.
Я увеличил количество одновременных операций записи / чтения; Я увеличил stream_throughput_outbound_megabits_per_sec, чтобы он не дросселировал; Я увеличил количество клиентов cassandra-stress в 3 раза (это только увеличило нагрузку на ЦП).
Моя установка на каждом узле Cassandra - это отдельный жесткий диск для журналов фиксации, и у меня есть 10-дисковый DAS, настроенный для хранения данных. Я наблюдал за вводом-выводом с помощью утилиты Linux iostat, и мне никогда не удавалось добиться, чтобы использование дисков было хоть сколько-нибудь близко к 100%. Далее я уменьшил допустимую память, доступную Кассандре, думая, что это заставит ее очищаться чаще. Вот как я запускаю стресс-тест записи:
cassandra-stress -d 192.168.2.1,192.168.2.2 -n 20000000 -t 400 -f 20million_write_1 & cassandra-stress -d 192.168.2.1,192.168.2.2 -n 20000000 -t 400 -f 20million_write_2 & cassandra-stress -d 192.168 .2.1,192.168.2.2 -n 20000000 -t 400 -f 20million_write_3 &
А вот как я запускаю стресс-тест чтения:
cassandra-stress -d 192.168.2.1,192.168.2.2 -n 20000000 -t 400 -f 20million_read_1 -o read & cassandra-stress -d 192.168.2.1,192.168.2.2 -n 20000000 -t 400 -f 20million_read_2 -o читать и cassandra-stress -d 192.168.2.1,192.168.2.2 -n 20000000 -t 400 -f 20million_read_3 -o читать и
Я делаю это с 2 внешних узлов, которые питают 4-узловой кластер Cassandra.
Есть какие-нибудь мысли или идеи о том, как я могу эффективно усилить ввод-вывод и связать его с вводом-выводом? Или, возможно, что я здесь делаю не так?
Спасибо за ваше время и терпение.
-Матт