【发布时间】:2016-03-23 09:05:55
【问题描述】:
我有 4 个节点 Cassandra 2.1.13 集群,配置如下。
32 GB 内存 最大堆大小 - 8 GB 每个 250 GB 硬盘(非 SSD)。
我正在尝试对写入和读取进行负载测试。我创建了一个多线程程序来创建 5000 万条记录。每行有 30 列。
我能够在 84 分钟内以每秒 9.5K 的插入速度插入 5000 万条记录。
接下来,我尝试使用 32 个客户端随机读取这 5000 万条记录,并且能够以每秒 28K 的速度进行读取。
问题是一段时间后,内存变满并且大部分都被缓存了。差不多 20GB。一段时间后系统由于内存不足而挂起。
如果我清理缓存内存,我的读取吞吐量会下降到每秒 100 次。
我应该如何在不影响读取性能的情况下管理我的缓存。
如果您需要更多信息,请告诉我。
【问题讨论】:
-
如何检查“内存已满”? Cassandra 日志中是否存在任何 OOM 异常?您是否为系统配置了交换空间?
-
使用 top 命令我可以看到有不到 500mb 的可用空间。使用 11 GB,其余全部缓存。交换已禁用。
标签: cassandra