¿Por qué el DU provoca un uso elevado de la CPU?

¿Por qué el DU provoca un uso elevado de la CPU?

En CentOS 6.5, du -sk /homese sh -c (du -sk \/home) 2>/dev/nullejecuta debido a un uso programado del disco para /home, pero duestá provocando un uso del 100 % de la CPU. Además, antes de que termine, se ejecuta otro du y se acumula, haciendo que el sistema caiga de rodillas.

Desde entonces, desactivé las comprobaciones automáticas, pero tampoco puedo ejecutarlas du -sk /homemanualmente. dufunciona bien (rápido) en otros directorios (aunque /home es el más grande - 4912620 - no debería tardar tanto)

Me gustaría saber por qué DU provoca un alto uso de CPU en /home


ACTUALIZACIÓN 1: Un reinicio completo (host+invitado) resolvió el problema.

ACTUALIZACIÓN 2: El problema volvió. Mientras du se está ejecutando, el uso de la CPU se divide casi a la mitad entre (us) y (sy). (wa) nunca supera el 1%. Además, IOWAIT muestrasolo el disco escribe?

Respuesta1

No puedo decirte por qué exactamente, pero esto es lo que haría para delimitar lo que está sucediendo:

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

Esto ejecutará "du -s" para cada comando dentro del /homedirectorio y le mostrará lo que está a punto de hacer. Esto también supone que estás usando sh o bash como tu shell.

Cuando encuentre qué directorio está causando el problema, vaya a un directorio más y vea qué sucede allí. Recuerde también que esto no buscará directorios ocultos ("puntos") en el nivel desde el que inicia el bucle for. Es posible que también deba verificarlos o modificar la expresión global para incluirlos.

Respuesta2

Finalmente descubrí cuál era el problema cuando me encontréesta publicación.

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

Por alguna razón, las interfaces virtio no cargaban el controlador antes. Todo está bien ahora.

información relacionada