Apache Cassandra:显示Memtable Flush Frequency的Nodetool Stats

时间:2016-01-13 20:31:00

标签: cassandra cqlsh nodetool

目前我正在调试Apache Cassandra的性能问题。当填充列系列的Memtable时,它将排队等待刷新到SSTable。当您执行大量写入时,通常会发生此刷新。 当此队列填满时,写入将被阻止,直到下一次成功完成刷新。这表示您的节点无法处理它正在接收的写入。

nodetool中是否有表示此行为的矩阵?换句话说,我想要一个数据,表明节点无法跟上它正在接收的写入。

谢谢!

3 个答案:

答案 0 :(得分:4)

多年来这不是真的。活动的memtable被切换,新的memtable将其作为实时位置。在这个现场记忆中发生了新的突变,同时要刷新" memtables包含在本地读取中。 MemtableFlushWriter线程池具有排队的刷新任务。所以你可以看到有多少待处(在tpstats下)。备份你的突变也可以在MutationStage下看到。

最终

nodetool tpstats

很可能是你想要的。

答案 1 :(得分:3)

  

我想要一个数据,表明节点无法跟上它正在接收的写入。

您的问题可能与磁盘I / O无法处理吞吐量有关 - > memtables的刷新排队 - >写入被阻止

命令 dstat 是您调查I / O问题的朋友。其他一些linux命令也可能很方便。阅读Amy Tobey撰写的这篇优秀博客文章:https://tobert.github.io/pages/als-cassandra-21-tuning-guide.html

  

nodetool中是否有表示此行为的矩阵?

nodetool tpstats

答案 2 :(得分:2)

我相信您正在寻找tp(线程池)统计信息。

nodetool tpstats

通常,阻止的FlushWriters表示您的存储系统无法跟上写入工作负载。您是偶然使用旋转磁盘吗?在这种情况下,您还要关注iostat。

这里是tpstats的文档:https://docs.datastax.com/en/cassandra/2.1/cassandra/tools/toolsTPstats.html