我想用1,2,3和4个实例对我的Cassandra Clusters进行基准测试。所以我在一个节点上运行了cassandra-stress工具。基准测试显示奇怪的结果,请参见下图( - >当少数线程时,单节点集群比2- / 3- / 4节点集群具有更多的ops / sek)。
我的结果(x轴=线程,y轴= ops / sek,数据集=群集中的节点(1,2,3,4):
与results 中的this benchmark site相比,我的结果似乎不正确。
我现在的问题是:如果我在群集的一台计算机上运行以下命令,我是否正确使用该工具:
cassandra-stress write
我也试过这个没有任何影响:
cassandra-stress write -node ip1,ip2,...
另见我的另一个问题here。谢谢!
- 编辑:Jim的解决方案 -
从C * -cluster外部的其他EC2实例运行cassandra-tool,但是在同一个LAN中(这样您就可以使用内部ips 10.x.x.x)。我推出了一个带有4个独立基准调用程序节点的1/2/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 :(得分:4)
如果你只在一个节点上运行cassandra-stress,那么我认为这将是预期的结果。一台机器无法使四节点集群饱和,并且会成为瓶颈。
此外,如果您在其中一个cassandra节点上运行cassandra-stress,那么通过运行Cassandra和stress客户端将加倍地加载该节点。这将给该机器的CPU和网络连接带来额外的压力。
要准确了解群集吞吐量,您应该从群集外的多台计算机(但在同一LAN上)运行压力。