Command-Line-Interface
為什麼 DU 會導致 CPU 使用率過高?
在 CentOS 6.5 上,因為 /home 的計劃磁碟使用
du -sk /home
而執行,但導致 100% 的 CPU 使用。另外,在它完成之前,另一個 du 執行並堆積起來,使系統陷入癱瘓。sh -c (du -sk \/home) 2>/dev/null``du
我已經禁用了自動檢查,但我也不能
du -sk /home
手動執行。du
在其他目錄上執行良好(快速)(雖然 /home 是最大的 - 4912620 - 它不應該花這麼長時間)我想知道為什麼 DU 在 /home 上導致 CPU 使用率高
更新 1:完全重啟(主機+來賓)解決了這個問題。
更新2:問題又回來了。當 du 執行時,CPU 使用率在 (us) 和 (sy) 之間分配了近一半。(wa) 永遠不會超過 1%。此外,IOWAIT僅顯示磁碟寫入?
當我看到這篇文章時,我終於發現了問題所在。
root> modprobe vhost_net root> echo vhost_net > /etc/modules
由於某種原因,virtio 介面之前沒有載入驅動程序。現在一切都很好。
我不能告訴你確切的原因,但我會這樣做來縮小正在發生的事情:
cd /home for i in * ; do echo "Starting in ${i}..." ; du -s ${i} ; done
這將為
/home
目錄中的每個命令執行“du -s”,並向您展示它將要做什麼。這也是假設您使用 sh 或 bash 作為 shell。當您找到導致問題的目錄時,再移入一個目錄,看看那裡會發生什麼。還要記住,這不會在您開始 for 循環的級別檢查隱藏(“點”)目錄。您可能還需要檢查這些,或修改 glob 表達式以包含它們。