2016-01-13 74 views
2

目前我正在調試Apache Cassandra的性能問題。當列族的Memtable已滿時,它將排隊等待刷新到SSTable。當您執行大量寫入操作時,經常發生這種衝突。 當這個隊列被填滿時,寫入被阻塞,直到下一次成功完成刷新。這表明您的節點無法處理它正在接收的寫入。Apache Cassandra:顯示Memtable刷新頻率的Nodetool統計信息

nodetool中是否存在表示此行爲的矩陣?換句話說,我想要一個數據表明節點不能跟上它正在接收的寫入。

謝謝!

回答

3

我希望有一個數據是表示節點不能與它接收寫跟上。

你的問題很可能是必然的磁盤I/O不能夠處理的吞吐量 - > memtables的刷新排隊 - >寫被封鎖

命令dstat是你的朋友調查I/O問題。其他一些linux命令可能也很方便。從鋁託比閱讀這個優秀的博客文章:https://tobert.github.io/pages/als-cassandra-21-tuning-guide.html

是否有nodetool表示此行爲的矩陣?

nodetool tpstats

4

那是好幾年不是真的。活動的memtable被切換,並且新的memtable將其作爲活動狀態。這個實時memtable發生新的突變,而「被刷新」的memtables包含在本地讀取中。 MemtableFlushWriter線程池具有排隊在其上的刷新任務。所以你可以看到有多少人正在等待(在tpstats下)。備份您的突變也可以在MutationStage下看到。

最終

nodetool tpstats 

很可能你在找什麼。