【问题标题】:Increasing Number of VMs decreases Cassandra Throughput. What can be reason?增加 VM 数量会降低 Cassandra 吞吐量。可能是什么原因?
【发布时间】:2016-04-30 11:01:30
【问题描述】:

我正在使用 YCSB 基准测试工具对 Cassandra 集群进行基准测试。 我正在改变集群中虚拟机的数量。 我用的是1台物理主机,我用1,2,3,4台虚拟机做基准测试(见附图)。

生成的工作负载始终相同 Workload C 10,000,00 次操作,10,000 条记录 每个 VM 有 2 GB RAM,20GB 驱动器

Cassandra - 1 个种子节点,endpoint_snitch - gossipproperty Keyspace YCSB - 复制因子 3,

问题是当我增加集群中的虚拟机数量时,吞吐量会降低。可能是什么原因?

根据定义,通过增加计算资源(即虚拟机),集群应该提供更好的性能,但情况正好相反,如图所示。请解释这可能是什么原因?我正在写关于这个主题的论文,但我无法找出原因,请帮助,我将不胜感激。

Cassandra 集群中不同数量的虚拟机观察到的吞吐量:

【问题讨论】:

标签: cassandra cassandra-2.1 ycsb


【解决方案1】:

Cassandra 非常擅长水平扩展(几乎是线性的),但这并不意味着简单地将虚拟机添加到一个物理主机上就可以提高吞吐量 - 物理主机上的单个虚拟机对资源(磁盘、cpu、内存、网络)优于 4,因此一台 VM 的性能可能优于 4。

根据定义,如果您WERE增加了资源,您应该会看到它的表现更好 - 但事实并非如此,您只是在现有资源中添加争用。如果你想扩展 cassandra,你需要使用额外的物理资源来测试它——更多的物理机器,而不是同一台机器上的更多 VM。

最后,正如 Chris Lohfink 所提到的,您的 VM 太小而无法进行有意义的测试 - 建议使用 8GB JVM 堆,另外还有 8GB 的​​ vm 页面缓存来支持读取 - 运行内存小于 16G 的 Cassandra 通常是不理想的在生产中。

您正在尝试使用加油站级别的设备测试喷气发动机(为数百或数千个物理节点设计的分布式数据库) - 您的基准测试硬件不适用于真实的生产环境,因此您的基准测试结果是没有意义。

【讨论】:

    【解决方案2】:

    很可能会遇到磁盘 IO 瓶颈。尤其是对于非 ssd 驱动器,这是完全可以预料的。除非每个 vm 都有专用的磁盘/cpu,否则资源竞争将导致这样的争用。此外,每个 vm 2gb 不足以使用 Cassandra 进行任何类型的性能基准测试,因为推荐的最小 JVM 堆大小为 8gb。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-08-31
      • 1970-01-01
      • 2017-03-25
      • 1970-01-01
      • 2011-08-05
      相关资源
      最近更新 更多