我有 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 。