Почему DU вызывает высокую загрузку ЦП?

Почему 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 работает, загрузка ЦП делится почти пополам между (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 раньше не загружали драйвер. Теперь все хорошо.

Связанный контент