【问题标题】:Cassandra hardware configurationCassandra 硬件配置
【发布时间】:2013-09-20 01:02:53
【问题描述】:

我有一个关于硬件相关性能问题的问题。

我们的 cassandra 节点有 4 个内核和 2GB RAM,但我们遇到了不合理的响应时间(每秒 200 次调用平均读取 1.5 秒)。

然后我们将机器升级到 8 核和 8GB RAM,并立即看到了改进(现在大约 300 毫秒)。

但是,服务器分析没有显示任何窥视或额外使用 CPU 功率的情况。

如何解释?从 4 核升级到 8 核是否可以解释这样的性能提升,即使服务器的 CPU 使用率似乎没有受到影响?

谢谢

【问题讨论】:

  • 你给JVM多少内存?
  • JVM 当前为 2GB
  • 只有 2 GB 时您是否遵守此比率 (1/4)?
  • 哪个版本的 Cassandra?

标签: database cassandra cpu-usage


【解决方案1】:

Cassandra 需要更多内存来保存内存表中的数据并加快读取响应时间。

8GB 到 16GB 是我们分配给 Cassandra 进程的内存,调整了 JVM 参数,每个四核有 4 个 CPU,因此每个节点有 16 个核心,带有 sata 驱动器。

确保提交日志和数据目录位于不同的磁盘上。

【讨论】:

  • 8GB 还不错,但超过 8GB 和GC will start getting slow.
  • 区分 ram-per-machine(越多越好)和 jvm-heap-per-machine(8GB 限制)很重要。一般可以让Cassandra自动设置jvm堆就可以了。
【解决方案2】:

如果您在默认情况下保留配置参数,您会看到部分性能有所提高,因为您的密钥缓存现在更大了。

key_cache_size_in_mb = (min(5% of Heap (in MB), 100MB))

cassandra-env.sh自动决定给JVM多少堆(如果你没有改变的话):

set max heap size based on the following
max(min(1/2 ram, 1024MB), min(1/4 ram, 8GB))
calculate 1/2 ram and cap to 1024MB
calculate 1/4 ram and cap to 8192MB
pick the max

由于您的最大堆大小增加了,您的密钥缓存也增加了。

【讨论】:

    猜你喜欢
    • 2015-08-19
    • 2021-05-29
    • 1970-01-01
    • 2020-11-13
    • 1970-01-01
    • 2010-10-14
    • 1970-01-01
    • 1970-01-01
    • 2011-12-17
    相关资源
    最近更新 更多