Cassandra工具cassandra-stress的使用
Usage of the Cassandra tool cassandra-stress
我想用 1、2、3 和 4 个实例对我的 Cassandra 集群进行基准测试。所以我 运行 在 一个 节点上使用 cassandra-stress 工具。基准测试显示了 st运行ge 结果,请参见下图(--> 当线程很少时,单节点集群比 2-/3-/4 节点集群多 ops/sek)。
我的结果(x 轴=线程,y 轴=ops/sek,数据集=集群中的节点(1、2、3、4):
与results from this benchmark site相比,我的结果似乎不正确。
我现在的问题是:如果我 运行 在集群的一台机器上执行以下命令,我是否正确使用该工具:
cassandra-stress write
这个我也试过了,没有效果:
cassandra-stress write -node ip1,ip2,...
另见我的另一个问题。谢谢!
-- 编辑:Jim 的解决方案--
运行 来自 C* 集群之外的其他 EC2 实例的 cassandra 工具,但在同一 LAN 中(因此您可以使用内部 ips 10.x.x.x)。我启动了一个 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
谢谢吉姆!
如果您只在一个节点上 运行ning cassandra-stress,那么我认为这将是预期的结果。单台机器无法使四节点集群饱和,这将成为瓶颈。
此外,如果您在其中一个 cassandra 节点上 运行ning cassandra-stress,则该节点将由 运行ning Cassandra 和压力客户端双重加载。这会给该机器的 CPU 和网络连接带来额外的压力。
要获得集群吞吐量的真实情况,您应该运行从集群外的多台机器(但在同一个 LAN 上)施加压力。
我想用 1、2、3 和 4 个实例对我的 Cassandra 集群进行基准测试。所以我 运行 在 一个 节点上使用 cassandra-stress 工具。基准测试显示了 st运行ge 结果,请参见下图(--> 当线程很少时,单节点集群比 2-/3-/4 节点集群多 ops/sek)。
我的结果(x 轴=线程,y 轴=ops/sek,数据集=集群中的节点(1、2、3、4):
与results from this benchmark site相比,我的结果似乎不正确。
我现在的问题是:如果我 运行 在集群的一台机器上执行以下命令,我是否正确使用该工具:
cassandra-stress write
这个我也试过了,没有效果:
cassandra-stress write -node ip1,ip2,...
另见我的另一个问题
-- 编辑:Jim 的解决方案--
运行 来自 C* 集群之外的其他 EC2 实例的 cassandra 工具,但在同一 LAN 中(因此您可以使用内部 ips 10.x.x.x)。我启动了一个 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
谢谢吉姆!
如果您只在一个节点上 运行ning cassandra-stress,那么我认为这将是预期的结果。单台机器无法使四节点集群饱和,这将成为瓶颈。
此外,如果您在其中一个 cassandra 节点上 运行ning cassandra-stress,则该节点将由 运行ning Cassandra 和压力客户端双重加载。这会给该机器的 CPU 和网络连接带来额外的压力。
要获得集群吞吐量的真实情况,您应该运行从集群外的多台机器(但在同一个 LAN 上)施加压力。