Monitoring

找出 NFSD 程序實際上在做什麼?

  • November 19, 2014

當我top在我們的一台伺服器上查看時,有很多 nfsd 程序消耗 CPU:

PID   USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND
2769  root      20   0     0    0    0 R   20  0.0   2073:14 nfsd
2774  root      20   0     0    0    0 S   19  0.0   2058:44 nfsd
2767  root      20   0     0    0    0 S   18  0.0   2092:54 nfsd
2768  root      20   0     0    0    0 S   18  0.0   2076:56 nfsd
2771  root      20   0     0    0    0 S   17  0.0   2094:25 nfsd
2773  root      20   0     0    0    0 S   14  0.0   2091:34 nfsd
2772  root      20   0     0    0    0 S   14  0.0   2083:43 nfsd
2770  root      20   0     0    0    0 S   12  0.0   2077:59 nfsd

我如何找出這些實際在做什麼?我可以查看每個 PID 正在訪問的文件列表或更多資訊嗎?

我們在Ubuntu Server 12.04

我試過nfsstat了,但它並沒有給我太多關於實際情況的有用資訊。

編輯 - 根據評論/答案嘗試的其他內容:

對每個 PID執行lsof -p 2774操作顯示以下內容:

COMMAND  PID USER   FD      TYPE DEVICE SIZE/OFF NODE NAME
nfsd    2774 root  cwd       DIR    8,1     4096    2 /
nfsd    2774 root  rtd       DIR    8,1     4096    2 /
nfsd    2774 root  txt   unknown                      /proc/2774/exe

這是否意味著沒有文件被訪問?


當我嘗試使用strace -f -p 2774它查看程序時,會出現以下錯誤:

attach: ptrace(PTRACE_ATTACH, ...): Operation not permitted
Could not attach to process.  If your uid matches the uid of the target
process, check the setting of /proc/sys/kernel/yama/ptrace_scope, or try
again as the root user.  For more details, see /etc/sysctl.d/10-ptrace.conf

Atcpdump | grep nfs在我們的兩台伺服器之間通過 nfs 顯示大量活動,但據我所知,它們不應該如此。很多條目,例如:

13:56:41.120020 IP 192.168.0.20.nfs > 192.168.0.21.729: Flags [.], ack 4282288820, win 32833, options [nop,nop,TS val 627282027 ecr 263985319,nop,nop,sack 3 {4282317780:4282319228}{4282297508:4282298956}{4282290268:4282291716}], len

在這種情況下,我經常發現擷取 NFS 流量非常有用(例如,使用 tcpdump 或 Wireshark)並查看它以查看高負載是否存在特定原因。

例如,您可以使用以下內容:

tcpdump -w filename.cap "port 2049"

僅將 NFS 流量(在埠 2049 上)保存到擷取文件中,然後您可以在 PC 上使用 Wireshark 打開該文件並對其進行更詳細的分析——上次我遇到類似問題時,這是一堆計算工作來自超過磁碟配額的同一使用者,並且客戶端(18 台不同的機器)一遍又一遍地嘗試寫入,從而使舊 NFS 伺服器上的負載變得非常高。

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