为什么DU会导致高CPU使用率?

在CentOS 6.5上, du -sk /homesh -c (du -sk \/home) 2>/dev/null运行,因为/ home的预定磁盘使用率,但du会导致100%的CPU使用率。 另外,还没有完成之前,另一个du就会跑起来,堆起来,使系统瘫痪。

我已经禁用了自动检查,但是我不能手动运行du -sk /homedu在其他目录上运行良好(快速)(尽pipe/ home是最大的 – 4912620 – 不应该这样做)

我想知道为什么DU在/ home上导致高CPU使用率


更新1:完全重新启动(主机+客人)解决了这个问题。

更新2 :问题回来了。 当du正在运行时,CPU使用率在(us)和(sy)之间差不多一半。 (wa)永远不会超过1%。 另外,IOWAIT 只显示磁盘写入 ?

我不能告诉你为什么,但是这是我要做的,以缩小发生的事情:

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

这将为/home目录中的每个命令运行“du -s”,并向您显示将要执行的操作。 这也假设你使用sh或bash作为你的shell。

当您find哪个目录导致问题时,请移动到更多的目录中,然后查看发生了什么。 还要记住,这不会检查隐藏(“点”)目录在你开始for循环的级别。 您可能也需要检查这些,或者修改globexpression式来包含它们。

当我遇到这个post时,我终于发现了什么问题。

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

由于某些原因,virtio接口之前没有加载驱动程序。 现在一切都好。