我有4个节点Cassandra 2.1.13群集,具有以下配置。
32 GB Ram 最大堆尺寸 - 8 GB 每个250 GB硬盘(不是SSD)。
我正在尝试对写入和读取进行负载测试。我创建了一个多线程程序来创建5000万条记录。每行有30列。
我能够以每分钟9.5K的速度在84分钟内插入5000万条记录。
接下来,我试图使用32个客户端随机读取这些5000万条记录,并且我能够以每秒28K的速度读取。
问题是在一段时间后,内存已满,大部分缓存。差不多20GB。一段时间后系统由于内存不足而挂起。
如果我清理缓存内存,我的读取吞吐量会降至每秒100次。
如何在不影响读取性能的情况下管理缓存。
如果您需要更多信息,请与我们联系。
答案 0 :(得分:1)
您注意到的是Linux磁盘缓存,它应该从RAM提供数据而不是转到磁盘以加速数据读取访问。请务必了解其工作原理,例如:见here。
由于您已经使用过top,我建议添加"缓存未命中"以及概述(点击F
+选择nMaj
)。这将在缓存无法提供磁盘读取时显示。一旦页面缓存开始变得饱和,您应该会看到未命中数增加。
如何在不影响读取性能的情况下管理缓存。
缓存完全由Linux管理,无需您身边的任何操作来处理。