Estoy corriendo du -sh
en una variedad de directorios para encontrar cerdos de disco. Tengo dos servidores idénticos (Dell PE2850s), ambos con RHEL5 y tardará mucho más en ejecutarse du
en un servidor sobre el otro.
Por ejemplo, hacerlo du -sh /opt/foobar
llevará 5 minutos en el servidor A (que tiene aproximadamente 25 GB), y en el servidor B, el mismo comando con la misma cantidad de datos me informará casi instantáneamente. No veo nada evidentemente obvio cuando corro arriba, etc.
Cualquier consejo es muy apreciado.
du -s
no depende del tamaño de los datos, sino más bien del número de archivos. ¿Ambos árboles de directorio tienen una cantidad similar de archivos?du
funcionará mucho más rápido si todos los metadatos del directorio (como los tamaños de archivo) están actualmente en caché. Si este es el caso por cualquier razón en un servidor y no en el otro, dará lugar a grandes diferencias.Respuestas:
Si tiene una gran cantidad de archivos en ese directorio y el contenido del directorio cambia constantemente, la entrada del directorio se fragmenta con el tiempo. Luego, cuando el sistema operativo esté leyendo el contenido del directorio, habrá muchas búsquedas innecesarias de discos. Esto sucede especialmente con los sistemas de archivos ext * (sin embargo, ext4 podría ser mejor) y los viejos sistemas de archivos ReiserFS v3.x (si eso superó el 85% más o menos).
La solución es bastante fácil:
Por supuesto, si todo está en caché en la RAM, esto no importa tanto; Por lo general, Linux almacena en caché archivos y directorios a los que se accede con frecuencia de forma bastante agresiva. Si realmente desea mantener el contenido de esos directorios en la RAM, puede poner algo como
ls -lah /your/dir 2>&1 >/dev/null
su cron.EDITAR: Oh, una cosa me vino a la mente. Si su servidor tiene un controlador RAID respaldado por batería con algo de caché, verifique que la batería esté bien. He visto situaciones en las que la batería está agotada y el controlador desactiva el caché por completo, arruinando el rendimiento muy mal. Por ejemplo, los servidores HP pueden decirle en los registros de iLO algo sobre la batería del controlador; en el panel de control del estado del servidor, todo parece estar bien y verde, pero solo la entrada del registro le informará sobre esto.
fuente
umount
el disco yfsck
eso?ionice -c3 -p $(pidof cp)
o menos.Sugiero probar el comando du simple sin ningún interruptor. Eventualmente verá qué directorio está ralentizando el proceso. Podría ser un disco defectuoso, o alguna otra razón, ...
fuente