Почему DU вызывает высокую загрузку процессора?
На CentOS 6.5, du -sk /home
а также sh -c (du -sk \/home) 2>/dev/null
запустить из-за запланированного использования диска для /home, но du
вызывает использование процессора на 100%. Кроме того, еще до того, как он закончил, запускается еще один du, который накапливает систему, ставя ее на колени.
С тех пор я отключил автоматические проверки, но я не могу запустить du -sk /home
либо вручную. du
работает нормально (быстро) в других каталогах (хотя / home является самым большим - 4912620 - это не должно занимать так много времени)
Я хотел бы выяснить, почему DU вызывает высокую загрузку процессора в / home
ОБНОВЛЕНИЕ 1: полный перезапуск (хост + гость) решил проблему.
ОБНОВЛЕНИЕ 2: проблема вернулась. Во время работы du загрузка ЦП делится почти пополам между (нами) и (sy). (ва) никогда не ползет более 1%. Кроме того, IOWAIT показывает только записи на диск?
2 ответа
Я наконец обнаружил, в чем проблема, когда наткнулся на этот пост.
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
Это будет запускать "du -s" для каждой команды внутри /home
каталог, и покажет вам, что он собирается делать. Это также предполагает, что вы используете sh или bash в качестве оболочки.
Когда вы найдете, какой каталог вызывает проблему, переместитесь в один каталог больше и посмотрите, что там происходит. Также помните, что это не будет проверять наличие скрытых ("точечных") каталогов на уровне, с которого вы запускаете цикл for. Вам также может понадобиться проверить их или изменить выражение glob, чтобы включить их.