我可以看到cassandra是CPU绑定写入繁重的工作负载,但它也是网络绑定?

时间:2016-01-22 23:16:27

标签: networking cassandra cassandra-2.0 cassandra-2.1

设置:1

3节点cassandra集群。每个节点位于不同的计算机上, 4核 32 GB RAM,800 GB SSD(磁盘),1Gbit / s = 125 MBytes /秒网络带宽

2个cassandra-stress客户机,其配置与上述完全相同。

Experiment1:在一台计算机上运行一个客户端,创建1到1000个线程,并且具有Quorum的一致性级别,并且cassandra节点上的最大网络吞吐量大约为8MBytes /秒,CPU使用率为cassandra节点和客户端都是85-90%

Experiment2:在两台不同的计算机上运行两个客户端,创建一到1000个线程,其中一致性级别为Quorum,并且cassandra节点上的最大网络吞吐量大约为12MBytes / sec,CPU使用率为cassandra节点和客户端都有90%

即使我的客户端在两台不同的机器上运行,也没有看到两倍的吞吐量,但我可以理解cassandra节点是CPU绑定的,这可能就是原因。所以引导我去setup2

设置2

3节点cassandra集群。每个节点位于不同的计算机上, 8核 32 GB RAM,800 GB SSD(磁盘),1Gbit / s = 125 MBytes /秒网络带宽

2台cassandra-stress客户机,4核32 GB RAM,800GB SSD(磁盘),1Gbit / s = 125 MBytes /秒网络带宽

Experiment3:在一台计算机上运行一个客户端,创建1到1000个线程,并且具有一致性级别的仲裁,并且cassandra节点上的最大网络吞吐量大约为18MBytes /秒,CPU使用率为在cassandra节点上为65-70%,在客户端节点上为> 90%。

Experiment4:在两台不同的计算机上运行两个客户端,创建1到1000个线程,并且具有一致性级别的仲裁,并且cassandra节点上的最大网络吞吐量大约为22MBytes / sec,具有CPU使用率在cassandra节点上< = 75%,在两个客户端节点上> 90%。

所以这里的问题是一个客户端节点我能够推动18MB /秒(网络吞吐量)并且两个客户端节点运行两个不同的机器我只能推动22MB /秒的峰值(网络吞吐量) ??我想知道为什么会出现这种情况,即使这次cassandra节点上的cpu使用率在8核机器上约为65-70%。

注意:我停止了cassandra并在两台不同的ec2机器上运行了一个名为iperf3的工具,我能够看到118 MBytes /秒的网络带宽。我正在将所有内容转换为字节而不是位,以避免任何混淆。

0 个答案:

没有答案