На 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 работает, загрузка ЦП делится почти пополам между (us) и (sy). (wa) никогда не превышает 1%. Также IOWAIT показываеттолько запись на диск?
решение1
Я не могу точно сказать, почему, но вот что я бы сделал, чтобы сузить круг предположений:
cd /home
for i in * ; do echo "Starting in ${i}..." ; du -s ${i} ; done
Это запустит "du -s" для каждой команды внутри /home
каталога и покажет вам, что она собирается сделать. Это также предполагает, что вы используете sh или bash в качестве оболочки.
Когда вы найдете каталог, вызывающий проблему, перейдите в еще один каталог и посмотрите, что там произойдет. Также помните, что это не будет проверять скрытые («точечные») каталоги на уровне, с которого вы начинаете цикл for. Возможно, вам придется проверить и их, или изменить выражение glob, чтобы включить их.
решение2
Я наконец понял, в чем проблема, когда наткнулся наэта почта.
root> modprobe vhost_net root> echo vhost_net > /etc/modules
По какой-то причине интерфейсы virtio раньше не загружали драйвер. Теперь все хорошо.