¿Qué está causando toda la actividad del disco en OS X?

59

Ocasionalmente, mi Macbook Pro se ralentizará a medida que el disco duro haga clic sin parar. La carga de la CPU es baja, pero las aplicaciones y los elementos del menú tardan en responder. ¿Existe alguna utilidad que pueda ayudarme a determinar qué sucede, como la cantidad de bytes leídos / escritos o los archivos abiertos / cerrados por proceso, a lo largo del tiempo?

un nerd pagado
fuente
1
Especulando aquí, pero podría ser algo simple como mdsactualizar el índice de Spotlight.
44
9 de cada 10 focos son el problema. Una cosa que he notado es que si tiene una partición de bootcamp, asegúrese de incluirla en la lista negra de Spotlight o mds siempre parecerá que la está masticando.
Bryan Schuetz
55
Gracias por la sugerencia sobre Spotlight. Justo ahora estaba experimentando lecturas de disco muy altas, arrojé mi partición Boot Camp a la pestaña Privacidad en las preferencias de Spotlight, ¡e inmediatamente las lecturas de disco se alinearon! Me ha estado volviendo loco durante meses.
Tim Keating

Respuestas:

61

De man iotop:

iotop rastrea las E / S de disco por proceso e imprime un informe resumido que se actualiza cada intervalo.

Esto está midiendo eventos de disco que han pasado los cachés del sistema.

Dado que esto usa DTrace, solo el usuario raíz o los usuarios con el privilegio dtrace_kernel pueden ejecutar este comando.

Puede que esto no sea exactamente lo que desea, pero es un script ksh que se ajusta a dtrace, por lo que debería poder descubrir cómo hacer que dtrace haga lo que necesita, si iotop no lo maneja de manera predeterminada.

Sin embargo, algo como esto iotop -C 5 12debería darle algo para comenzar: generará 12 muestras, cada una de 5 segundos de duración.

James Polley
fuente
2
Bastante bueno. iotop -C 5 12es una buena manera de obtener un resumen de lo que está sucediendo.
un nerd pagado el
51

También puede usar fs_usagepara obtener una cuenta detallada de qué aplicaciones están llegando al disco.

AlBlue
fuente
1
Oooh, esto está de moda. fs_usageTambién le permite filtrar la red y la actividad del sistema de archivos.
un nerd pagado el
2

Siempre noté esto los sábados por la mañana, y resultó ser locateque actualiza su base de datos a las 3:15 am los viernes por la noche.

Intenté deshabilitar su launchdconfiguración (in /System/Library/LaunchDaemons/com.apple.locate.plist), pero aún así se ejecutó de todos modos, así que me /usr/libexec/locate.updatedbsalí del camino. Problema ... mitigado.

Brandan
fuente
1

Puede ser la paginación del sistema operativo en la memoria virtual en lugar de algo específico de la aplicación. Puede intentar cerrar aplicaciones que se usan con menos frecuencia o al menos reiniciar algunas aplicaciones que les gusta construir cachés en memoria con el tiempo (por ejemplo, Safari). Consulte las diversas estadísticas de memoria por proceso con Activity Monitor para encontrar posibles culpables. Si salir de algunas aplicaciones con uso intensivo de memoria parece aliviar temporalmente el problema, puede intentar agregar RAM.

Si la actividad del disco no está relacionada con la paginación, puede usarla fs_usagepara rastrearla hasta uno o más procesos específicos.

Chris Johnsen
fuente