Linux
如何在網路負載下調試 linux 延遲問題
我有 12 個混合 Ubuntu 12/14 數據庫 Cassandra 節點。所有節點都是帶有 SSD、1Gb 網卡的裸機節點,並且都位於同一個 DC(託管主機)中。
在輕量操作下,所有節點與我們的雲節點(在同一個 DC 中)之間的延遲都在 1ms 以下。
當我開始增加對數據庫節點的寫入時,進出這些數據庫節點的延遲大幅攀升至 300 毫秒左右。CPU 負載也在 1 左右(4 個物理核心),磁碟使用率低於 3%,通過 dstat,網路負載在 18MiB 左右。
對 Cassandra 的本地讀寫相對較快,所以我已經排除了應用層過載的可能性。
我應該研究哪些工具和設置來調整以了解為什麼我的延遲如此糟糕?我有監控工具來查看這些問題,我不確定從哪裡開始診斷它們。
我對此類問題的出發點通常是
perf top
. 這將很快讓您了解花費最多時間的地方。有關如何使用它的一些很好的範例,請參閱https://perf.wiki.kernel.org/index.php/Tutorial 。