如何识别哪个 NFS 客户端产生磁盘 IO?

如何识别哪个 NFS 客户端产生磁盘 IO?

我们的池服务器磁盘 100% 繁忙。

我检查iotop并确定这nfsd是消耗磁盘 IO 最多的进程。

我需要进一步缩小范围,并确定使用服务器的哪个 NFS 客户端是造成此磁盘 IO 瓶颈的原因。我该怎么做?

在此处输入图片描述

在此处输入图片描述

答案1

iotop然后o- 您将看到哪个进程读取和/或写入以及对 HDD 的写入量。

检查该进程的 pid 并执行netstat -entp | grep <pid>- 这样您将看到已建立的 tcp 连接以及它来自哪个地址。用于enp检查 tcp 和 udp 会话。

您还可以执行netstat -anp | grep 2049- 这样获取 ip 地址和 pid,然后将 pid 与 中的 pid 关联起来iotop

答案2

通常使用最多 IO 的客户端也会产生最多的网络流量,因此我所做的是:转储几秒钟的所有流量,然后创建使用最多流量的主机(仅限于 nfs 主机)的排序列表:

tcpdump > dump.cap  # (30 secs should be enought), press ctr+ c
grep -o "<something iding an nfs client>" dump.cap | sort | uniq -c | sort -n

相关内容