Cassandra读/写带宽

时间:2017-01-02 16:46:24

标签: performance docker cassandra

我最近正在使用Cassandra docker。 我正在运行多个容器,每个容器都运行一个独立的Cassandra实例。 每个实例都有一个本地nvme SSD来存储数据并在其上提交日志。 我正在与YCSB合作测试性能 - 工作负载a(50%读取50%插入)100M记录。 对于单个主机上的2个容器,我得到~23K TPS。

我不明白的是nvme ssd表现: 我在每个ssd上看到稳定的~2GB / s读取带宽,只有~20MB / s的写入。写入只在很短的时间内完成 - 大部分时间没有写入磁盘,偶尔我会看到300MB / s写入的峰值。

是Cassandra的预期行为吗?磁盘读写与写入之间的速率是如此之大?

(主机有65GB内存)

此致

大卫

1 个答案:

答案 0 :(得分:0)

是的,听起来对我不错。读取更昂贵,写入便宜。由于您无法加入,因此我们的想法是只从一个分区读取每个查询。你可以通过非规范化和写作多次而不是一次来实现这一目标。

当memtables刷新它会导致大量写入流量,这可能会导致那些大的峰值。读取会大量打击磁盘,并且取决于压缩策略,可能需要大量IO。然后,还会更稳定(尽管仍然是突发性的,每10秒)写入提交日志。您可能需要查看write path上的文档,或查看readwrite路径介绍。如果您搜索它,还有很多其他在线参考。