Linux
Linux - 我如何查看等待磁碟 IO 的內容
我有一台負載非常高的伺服器。就 CPU 使用率而言,沒有什麼讓我大吃一驚,也沒有交換。
我認為這是因為某些程序正在等待磁碟 IO,我想看看在等待什麼。
是否有任何程序可以告訴我哪些程序正在等待 IO?我知道,
iotop
但這顯示了目前正在做什麼 IO。或者這是一個愚蠢的問題?(如果是這樣解釋如何:))
您可以使用 iotop 之類的 I/O 監視器,但它只會顯示具有目前 I/O 操作的程序或執行緒。
如果您需要瀏覽等待 I/O 的程序,請使用 watch 監視帶有 STAT 標誌“D”的程序,如下所示:
watch -n 1 "(ps aux | awk '\$8 ~ /D/ { print \$0 }')"
ps axu
並尋找處於“D”狀態的程序。根據ps(1) 聯機幫助頁,處於 D 狀態的程序處於不間斷睡眠狀態,這幾乎總是意味著“等待 IO”。不幸的是,通常不可能殺死這些程序。