首页 文章

Cassandra缓存内存管理

提问于
浏览
1

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

32 GB Ram最大HEAP尺寸 - 每个8 GB 250 GB硬盘(非SSD) .

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

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

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

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

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

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

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

1 回答

  • 1

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

    当你're already using top, I'建议添加"cache misses"以及概述(点击 F 选择 nMaj ) . 这将在缓存无法提供磁盘读取时显示 . 一旦页面缓存开始变得饱和,您应该会看到未命中数增加 .

    如何管理缓存而不影响读取性能 .

    缓存完全由Linux管理,不需要您的任何操作来处理 .

相关问题