Cassandra缓存内存管理

时间:2016-03-23 09:05:56

标签: cassandra

我有4个节点Cassandra 2.1.13群集,具有以下配置。

32 GB Ram 最大堆尺寸 - 8 GB 每个250 GB硬盘(不是SSD)。

我正在尝试对写入和读取进行负载测试。我创建了一个多线程程序来创建5000万条记录。每行有30列。

我能够以每分钟9.5K的速度在84分钟内插入5000万条记录。

接下来,我试图使用32个客户端随机读取这些5000万条记录,并且我能够以每秒28K的速度读取。

问题是在一段时间后,内存已满,大部分缓存。差不多20GB。一段时间后系统由于内存不足而挂起。

如果我清理缓存内存,我的读取吞吐量会降至每秒100次。

如何在不影响读取性能的情况下管理缓存。

如果您需要更多信息,请与我们联系。

1 个答案:

答案 0 :(得分:1)

您注意到的是Linux磁盘缓存,它应该从RAM提供数据而不是转到磁盘以加速数据读取访问。请务必了解其工作原理,例如:见here

由于您已经使用过top,我建议添加"缓存未命中"以及概述(点击F +选择nMaj)。这将在缓存无法提供磁盘读取时显示。一旦页面缓存开始变得饱和,您应该会看到未命中数增加。

  

如何在不影响读取性能的情况下管理缓存。

缓存完全由Linux管理,无需您身边的任何操作来处理。