為什麼DU會導致CPU使用率高?

為什麼DU會導致CPU使用率高?

在 CentOS 6.5 上,由於 /home 的計劃磁碟使用而運行,但du -sk /home導致CPU 使用率達到 100%。另外,在它完成之前,另一個 du 就開始運作並且它堆積起來,使系統崩潰。sh -c (du -sk \/home) 2>/dev/nulldu

我已經禁用了自動檢查,但我也無法du -sk /home手動運行。du在其他目錄上運行良好(快速)(儘管 /home 是最大的 - 4912620 - 它不應該花費那麼長時間)

我想知道為什麼 DU 導致 /home 上的 CPU 使用率很高


更新 1:完全重新啟動(主機+來賓)解決了問題。

更新2: 問題又來了。當 du 運作時,CPU 使用率在 (us) 和 (sy) 之間幾乎各佔一半。 (wa) 的爬行率絕對不會超過 1%。此外,IOWAIT 顯示僅磁碟寫入

答案1

我無法確切地告訴你為什麼,但我會這樣做來縮小正在發生的事情的範圍:

cd /home
for i in * ; do echo "Starting in ${i}..." ; du -s ${i} ; done

這將為/home目錄中的每個命令運行“du -s”,並向您顯示它將要執行的操作。這也假設您使用 sh 或 bash 作為 shell。

當您找到導致問題的目錄時,請再移入目錄,看看那裡會發生什麼。請同時記住,這不會在您啟動 for 迴圈的層級檢查隱藏(「點」)目錄。您可能還需要檢查這些,或修改 glob 表達式以包含它們。

答案2

當我遇到這個問題的時候終於發現了問題所在這個帖子

root> modprobe vhost_net root> echo vhost_net > /etc/modules

由於某種原因,virtio 介面之前沒有載入驅動程式。現在一切都很好。

相關內容