我最近正在使用Cassandra docker。 我正在运行多个容器,每个容器都运行一个独立的Cassandra实例。 每个实例都有一个本地nvme SSD来存储数据并在其上提交日志。 我正在与YCSB合作测试性能 - 工作负载a(50%读取50%插入)100M记录。 对于单个主机上的2个容器,我得到~23K TPS。
我不明白的是nvme ssd表现: 我在每个ssd上看到稳定的~2GB / s读取带宽,只有~20MB / s的写入。写入只在很短的时间内完成 - 大部分时间没有写入磁盘,偶尔我会看到300MB / s写入的峰值。
是Cassandra的预期行为吗?磁盘读写与写入之间的速率是如此之大?
(主机有65GB内存)
此致
大卫
答案 0 :(得分:0)
是的,听起来对我不错。读取更昂贵,写入便宜。由于您无法加入,因此我们的想法是只从一个分区读取每个查询。你可以通过非规范化和写作多次而不是一次来实现这一目标。
当memtables刷新它会导致大量写入流量,这可能会导致那些大的峰值。读取会大量打击磁盘,并且取决于压缩策略,可能需要大量IO。然后,还会更稳定(尽管仍然是突发性的,每10秒)写入提交日志。您可能需要查看write path上的文档,或查看read和write路径介绍。如果您搜索它,还有很多其他在线参考。