2017-01-02 65 views
2

我正在使用Cassandra docker latest。 我正在运行多个容器,每个运行一个独立的Cassandra实例。 每个实例都有一个本地nvme SSD来存储数据并提交日志。 我正在与YCSB一起测试性能 - 工作量(50%读取50%插入)100M记录。在单个主机上有2个容器的 我得到〜23K TPS。卡桑德拉读/写带宽

我不明白的是nvme ssd性能: 我在每个ssd上看到稳定的〜2GB/s读取带宽,只有〜20MB/s的写入。写操作只能在短时间内完成 - 大多数情况下不会写入磁盘,偶尔可以看到300MB/s的写入峰值。

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

(主机有65GB内存)

问候,

大卫

+0

什么是您的存储驱动程序?查看https://docs.docker.com/engine/userguide/storagedriver/selectadriver/查找 – user2915097

回答

0

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

当memtables刷新它将导致大量的写入流量,这可能导致这些大的高峰。读取会受到很大的影响,并且取决于压缩策略,可能需要很多IO。那么也会更加稳定(尽管每10秒仍然突发)写入提交日志。您可能需要结算write path上的文档或查看这些readwrite路径介绍。如果您搜索它,也有很多其他在线参考资料。