2015-07-10 2 views
4

Я хочу сравнить свои кластеры Cassandra с 1, 2, 3 и 4 экземплярами. Поэтому я запустил инструмент cassandra-stress на один из узлов. Тест показывает странные результаты, см. График ниже (-> одноузловой кластер имеет больше ops/sek, чем кластер 2-/3-/4-узловой, когда несколько потоков).Использование инструмента Cassandra cassandra-stress

Мои результаты (ось х = нити, ось у = OPS/сек, набор данных = узлы в кластере (1, 2, 3, 4):
enter image description here

По сравнению с results из this benchmark site мои результаты кажутся не правильными

Мой вопрос теперь:. Должен ли я использовать инструмент правильно, если я запускаю следующую команду на одной машине кластера:

cassandra-stress write 

Я также попытался это без какого-либо эффекта:

cassandra-stress write -node ip1,ip2,... 

Смотрите также другие мои вопросы here. Спасибо!

- EDIT: Решение Джима -
Run Кассандра-инструмент от других EC2-экземпляров за пределами C *-кластера, но в том же локальной сети (так что вы можете работать с внутренними изобрами 10.xxx) , Я запустил кластер узлов 1/2/4 с 4 отдельными узлами контрольного вызова. Каждый из них получил одну из следующих команд:

Первое написание:

cassandra-stress write n=1000000 cl=one -mode native cql3 -schema keyspace="keyspace1" -pop seq=1..1000000 -node ip1,ip2,ip3,ip4 
cassandra-stress write n=1000000 cl=one -mode native cql3 -schema keyspace="keyspace1" -pop seq=1000001..2000000 -node ip1,ip2,ip3,ip4 
cassandra-stress write n=1000000 cl=one -mode native cql3 -schema keyspace="keyspace1" -pop seq=2000001..3000000 -node ip1,ip2,ip3,ip4 
cassandra-stress write n=1000000 cl=one -mode native cql3 -schema keyspace="keyspace1" -pop seq=3000001..4000000 -node ip1,ip2,ip3,ip4 

Затем читает эти данные с помощью команды чтения:

cassandra-stress read n=1000000 cl=one -mode native cql3 -schema keyspace="keyspace1" -pop seq=1..1000000 -node ip1,ip2,ip3,ip4 
cassandra-stress read n=1000000 cl=one -mode native cql3 -schema keyspace="keyspace1" -pop seq=1000001..2000000 -node ip1,ip2,ip3,ip4 
cassandra-stress read n=1000000 cl=one -mode native cql3 -schema keyspace="keyspace1" -pop seq=2000001..3000000 -node ip1,ip2,ip3,ip4 
cassandra-stress read n=1000000 cl=one -mode native cql3 -schema keyspace="keyspace1" -pop seq=3000001..4000000 -node ip1,ip2,ip3,ip4 

Здесь результаты чтения

1 Node cluster: 149,000 ops/sec 
2 Node cluster: 348,000 ops/sec 
4 Node cluster: 480,000 ops/sec 



Спасибо, Джим!

+0

Являются ли эти конечные числа совокупностью, которую вы сделали из результатов всех стресс-тестов? И спасибо, что сейчас я имею дело с такой проблемой. – Totoro

ответ

4

Если вы работаете только с кассандра-стрессом на одном узле, я думаю, что это будет ожидаемый результат. Одна машина не может насытить кластер из четырех узлов и будет узким местом.

Также, если вы используете cassandra-stress на одном из узлов cassandra, тогда этот узел будет загружен вдвойне, запустив Cassandra и стресс-клиента. Это создаст дополнительную нагрузку на процессор и сетевое соединение для этой машины.

Чтобы получить реальную картину пропускной способности вашего кластера, вы должны использовать стресс у нескольких машин вне кластера (но в той же локальной сети).

+0

Спасибо, Джим, это было решение: я запустил кластер Cassandra Cluster 1/2/4 и начал инструмент стресс-атаки cassandra еще четырьмя экземплярами EC2 (в той же локальной сети). Теперь read ops/sec кажется realisitc: 149000 (1 узел в C * -кластере), 348000 (2 узла в C * -кластере) и 480000 (4 узла в C * -кластере). –

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