卡桑德拉读/写带宽

我正在使用最新的Cassandra docker。 我运行多个容器,每个运行一个独立的Cassandra实例。 每个实例都有一个本地nvme SSD来存储数据并提交日志。 我正在与YCSB一起testing性能工作量(50%读取50%插入)的100Mlogging。 在一个主机上的2个容器,我得到〜23K TPS。

我不明白的是nvme ssd的性能:我看到每个SSD上的读取带宽稳定在〜2GB / s,只有〜20MB / s的写入。 写操作只需要很短的时间 – 大部分时间没有对磁盘的写操作,偶尔可以看到一个300MB / s的写操作峰值。

卡桑德拉的预期行为是什么? 磁盘读取和写入之间的速率是如此之大?

(主机有65GB内存)

问候,

大卫

是的,听起来很对我。 读取更昂贵,写入便宜。 既然你不能join的想法是使每个查询只能从一个分区读取。 你通过反规范化和写许多次而不是一次来完成这个任务。

当memtables刷新它将导致大量的写入stream量,这可能导致这些大的高峰。 读取会打击磁盘很多,并根据压缩策略,可能需要很多的IO。 那么也将会更加稳定(尽pipe每10秒仍然突发)写入提交日志。 您可能需要在写入path上签出文档,或查看这些读取和写入path的介绍。 如果您search它,也有很多其他在线参考。