设置: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 /秒的网络带宽。我正在将所有内容转换为字节而不是位,以避免任何混淆。