¿Hay alguna manera de rastrear la razón por la cual el proceso 'fseventsd' consume CPU?

11

Ejecuté Mac OSX 10.6 y noté que un proceso 'fseventsd' estaba tomando 100% de CPU y 1.5G de RAM. Al hacer una búsqueda en Google, descubrí que esto podría estar vinculado a Time Machine. Sin embargo, no ejecuto Time Machine en esta computadora.

¿Hay alguna forma de rastrear la fuente del recurso hog? ¿Se registra en cualquier lugar? Un reinicio 'solucionó' el problema, pero estoy seguro de que volverá si no puedo entender por qué comenzó en primer lugar.

Gracias por adelantado.

DTest
fuente
¿Alguna vez encontraste la fuente? Estamos experimentando el mismo problema en nuestro servidor de Snow Leopard. Puedo intentar reiniciar, pero no puedo hacerlo hasta más tarde esta noche.
Greg W
No he tenido que aparecer desde mi reinicio, (desafortunadamente), así que todavía no conozco la fuente
DTest
Tengo el mismo problema. Reiniciar no ayuda. Después de 20 a 30 minutos, fseventsd comienza nuevamente para tomar el 99% de la CPU. El Macbook ya no está en silencio ...
Laurent K

Respuestas:

7

fseventd es el proceso de registro de eventos del sistema de archivos, puede leer mucho al respecto en la revisión ars technica de Mac OS X Leopard. Puede usar programas como fseventer para ver el mismo tipo de salida que ve.

Del artículo:

El marco FSEvents se basa en un único proceso de daemon en ejecución constante llamado fseventsd que lee desde / dev / fsevents y escribe los eventos en archivos de registro en el disco (almacenados en un directorio .fseventsd en la raíz del volumen para el que son los eventos). Eso es. Esa es la solución de súper alta tecnología: simplemente escriba los eventos en un archivo de registro. Aburrido, pragmático, pero bastante efectivo.

Puede verificar ese registro aunque no sé lo útil que será para usted. No me sorprendería tanto ver que Time Machine, que se ocupa de muchos archivos y, a veces, de muchos archivos pequeños, puede causar algunos problemas con fsevents.

ConstantineK
fuente
¡Esperemos que no sea Time Machine, ya que esto está desactivado! De todos modos, estoy leyendo en fseventer, así que gracias por la sugerencia.
DTest
3

O un programa estaba atrapado en un bucle muy eficiente escribiendo cambios que causaron fseventsdmucho trabajo o es un bucle infinito que procesa una estructura de datos irresoluble en uno de los volúmenes montados.

En el caso anterior, es probable que los programas como fseventer que leen el mismo flujo de datos también se bloqueen, ahora tendrá dos procesos con una utilización del 50% tratando de procesar una cantidad infinita de datos. (Este es un gran punto de datos si está buscando ver qué está mal). Es análogo a las preguntas que se hacen por qué se syslogdestá tomando toda la CPU; por lo general, es otro programa que se ha vuelto loco y le ha causado mucho trabajo.

Cuando / si vuelve a suceder, comience a salir de los programas y considere cerrar la sesión. Sabrá si el elemento infractor es un proceso de nivel de sistema o un proceso de nivel de usuario. fs_usagepodría ser útil para ver qué programas específicos son muy pesados.

fsck desde un arranque en modo de usuario único generalmente se requiere si tiene enlaces duros circulares u otras travesuras degeneradas del sistema de archivos que pueden causar este tipo de aumento en la actividad.

bmike
fuente
Sí, lo siento si no estaba claro, definitivamente no podías abrir fseventer mientras el popó golpeaba proverbialmente al ventilador. Solo quise decir más para darte una idea de qué tipo de datos se registraron y se pudieron ver, como lo haría fs_usage.
ConstantineK
Me encantó aprender acerca de fseventer, se ven muy bien. No hay falla, solo datos.
bmike
Wow, gracias por el consejo sobre 'fs_usage'. Y sí, pensé que en realidad no era la causa de la carga, sino más bien algún otro programa. Espero un bucle en alguna parte. Por otro lado, la máquina ha estado funcionando con carga normal durante aproximadamente 24 horas, y no ha vuelto a ocurrir.
DTest