launchd golpeando cada archivo modificado cada 30 segundos

Estoy en MacOs 10.12.5. Estoy tratando de realizar E/S de gran volumen, pero alguna tarea administrada por launchd golpea cada bloque de disco modificado cada 30 segundos. Cuando esto sucede, mi E/S de gran volumen tiene que competir, lo que provoca una desaceleración severa. ¿Cómo identifico la tarea problemática?

Creo que tiene algo que ver con launchd porque fs_usage -w -f diskiome dice que lo es. Cada 30 segundos, genera una lista como esta para cada bloque de disco modificado en el sistema (disculpas, tienes que desplazarte para ver launchd):

14:34:33.887889    WrData[AT3]     D=0x0068c05a  B=0x1000   /dev/disk2  /Users/simon/Library/Application Support/Google/Chrome/Default/Session Storage/000430.log                                                             0.000145 W launchd.9793620
14:34:33.887893    WrData[AT3]     D=0x00549a2b  B=0x1000   /dev/disk2  /Users/simon/Library/Application Support/Google/Chrome/Default/Session Storage/LOG                                                                    0.000107 W launchd.9793620
14:34:33.887895    WrData[AT3]     D=0x00570119  B=0x1000   /dev/disk2  /Users/simon/Library/Saved Application State/com.apple.Terminal.savedState/window_2.data                                                              0.000070 W launchd.9793620
14:34:33.887897    WrData[AT3]     D=0x0056fab5  B=0x1000   /dev/disk2  /Users/simon/Library/Saved Application State/com.apple.Terminal.savedState/window_3.data                                                              0.000064 W launchd.9793620
14:34:33.887912    WrData[ANT3]    D=0x0056ffd0  B=0x1000   /dev/disk2  /Users/simon/Library/Saved Application State/com.apple.Terminal.savedState/windows.plist                                                              0.000072 W launchd.9793620

Pensé que podría ser mi software antivirus McAfee, así que excluí los archivos que estaba escribiendo del análisis en tiempo real y luego intenté apagarlo.

Luego pensé que podría ser la búsqueda de Spotlight, pero nuevamente, excluir el volumen en el que se encuentran mis archivos de datos no impidió que esta tarea de lanzamiento volviera a acceder a los archivos.

En ejecución launchctl listmuestra una lista de 327 tareas. Me encantaría poder reducir esto a solo uno.

Si bien estoy seguro de que la tarea se ejecuta cada 30 segundos después de haberla visto muchas veces, no puedo encontrar ninguna mención de un "30" apropiado en los archivos de configuración. Tengo:

  • No se menciona "30" en /System/Library/LaunchAgents
  • Una mención de "30" en /System/Library/LaunchDaemons
    • com.apple.powerd.swd.plist establece ThrottleInterval en 30
  • No se menciona "30" en /Library/LaunchAgents
  • Una mención de "30" en /Library/LaunchDaemons
    • com.mcafee.virusscan.fmpd.plist establece ExitTimeout en 30
  • No se menciona "30" en ~/Library/LaunchAgents

Aunque McAfee menciona "30", deshabilitarlo y excluir los archivos no supuso ninguna diferencia.

Se agradecería cualquier ayuda para identificar la tarea que está accediendo a los bloques de disco cambiados.

¿Se puede eliminar McAfee por completo? Recuerdo algunas cosas muy extrañas con McAfee: era imposible salir normalmente y tenía dos procesos que se monitoreaban entre sí para que uno pudiera reiniciar el otro si alguna vez moría. Básicamente, no confiaría en ellos para que el botón de desactivación deshabilite nada.
@BallpointBen: desafortunadamente, eliminar McAfee por completo no haría felices a mis técnicos locales de TI y tengo que vivir con ellos. Ni siquiera sabemos que es McAfee, excepto que esperaríamos que McAfee acceda a los archivos recién modificados.
probablemente obvio, pero asegúrese de no tener una sincronización en la nube activa en esos directorios (icloud, etc.)
puede intentar apagar la máquina del tiempo en caso de que genere una lista de archivos modificados

Respuestas (2)

Tuve el mismo problema hace un tiempo, pero IIRC resultó ser los servicios de indexación de Spotlight (mds, mdworker, etc.) que son generados por launchd.

Abra Spotlight en Preferencias del sistema, cambie a la pestaña Privacidad, luego arrastre su carpeta de inicio a la ventana. Esto hará que Spotlight ignore su carpeta de inicio y todas las subcarpetas.

Si no desea excluir todos sus archivos, cree una carpeta específicamente para esta aplicación de E/S alta y configure Spotlight para ignorar solo esta carpeta.

Para un método más geek, aquí hay algunos comandos de shell para ejecutar que excluirán todo el disco de la indexación de Spotlight. Utilizo estos comandos en todas las unidades USB/flash externas tan pronto como puedo.

Toque estos archivos en la raíz de la unidad para excluirlos, así que cd /para la unidad interna principal o cd /Volumes/USB_FLASH_DRIVE_NAMEpara una unidad USB/FLASH externa, luego

sudo /usr/bin/touch .metadata_never_index
sudo /usr/bin/chflags hidden .metadata_never_index

y para dejar de preguntar si desea utilizar el disco para las copias de seguridad de TimeMachine

sudo /usr/bin/touch .com.apple.timemachine.donotpresent
sudo /usr/bin/chflags hidden .com.apple.timemachine.donotpresent

Cuando suceda, intente hacer

launchctl list|grep xxxxx

int the Terminal donde xxxx es el número que aparece al final de su salida fs_usage, es decir, launchd.9793620en la lista que proporcionó.

Disculpas, no pude probar hasta hoy. La triste respuesta es "absolutamente nada". Creo que esto se debe a que el número en la salida fs_usage es una ID de hilo, pero el número en la lista de launchctl es una ID de proceso
No hay necesidad de disculparse, ¡usted es el que está en problemas! De hecho, tiene razón: acabo de probar que mi idea no funciona en mi Sierra. Lo siento, debería haber probado pero estaba en mi teléfono...
Estoy tratando de encontrar una herramienta para enumerar todos los hilos en ejecución. En Linux, hay htop y se puede instalar en MacOS, así que seguí adelante, pero no hay soporte para mostrar todos los hilos :-(