识别饱和 VPS IO 的进程

识别饱和 VPS IO 的进程

我设置了两个节点,使用 drbd 来同步 kvm VPS 以进行回退。因此,vps 仅在一个节点上处于活动状态。活动节点上有 4 个 kvm vps。

两个节点具有用于 drbd 同步的专用 10G 接口。因此,这不会造成 io 问题。

Sysbench给出的磁盘io性能大概是400Mb/s左右。

问题是,在随机间隔内,其中一个 VPS 的 io 开始达到峰值,速率约为 400MB/s(相同的磁盘 io 限制),然后变得无响应。其他 vps 当时仍然有响应。我无法找到导致当时 I/O 过高的原因。服务器没有响应,所以我当时无法使用 ssh 登录。我确实使用 telegraf->influxdb 来监控 vps。在那里我可以看到 I/O 正在升高,但我不确定如何使用它来查找哪个应用程序/用户导致了高负载和/或为什么只有这个 vps 受到影响,而其他 vps 却没有受到影响,而它们使用相同的底层 drbd/磁盘。

关于如何调试这个问题有什么建议吗?

答案1

iotop如果您碰巧在某个“随机时间”捕获到 400MB/s 的 IO,则可以使用它来识别 KVM 上的哪个进程正在生成 400MB/s 的 IO。

或者,您可以使用类似的方法,pidstat -d在某个时间间隔内写出报告文件,以便稍后筛选,以查看哪个进程导致了磁盘丢失。

400MB/s 是大量未被考虑的 IO,所以我希望你能追踪到它!

相关内容