Nfs

如何辨識哪個 NFS 客戶端產生磁碟 IO?

  • May 7, 2017

我們的池伺服器磁碟 100% 忙。

我檢查iotop並確定這nfsd是消耗磁碟 IO 的頂級程序。

我需要進一步縮小範圍,並想確定哪個 NFS 客戶端使用伺服器是/負責這個磁碟 IO 瓶頸。我該如何進行?

在此處輸入圖像描述

在此處輸入圖像描述

iotop然後o- 您將看到哪個程序讀取和/或寫入以及多少到 HDD。

檢查該程序的 pid 並執行netstat -entp | grep <pid>- 這樣您將看到已建立的 tcp 連接以及它來自哪個地址。用於enp檢查 tcp 和 udp 會話。

您也可以這樣做netstat -anp | grep 2049- 這樣獲取一個 ip 地址和 pid,然後將 pid 與來自iotop.

通常使用最多 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

引用自:https://serverfault.com/questions/843221