4 votes

launchd frappe chaque fichier modifié toutes les 30 secondes

Je suis sous MacOS 10.12.5. J'essaie d'effectuer des E/S à haut volume mais une tâche gérée par launchd frappe chaque bloc de disque modifié toutes les 30 secondes. Lorsque cela se produit, mes E/S à haut volume doivent rivaliser, ce qui entraîne un ralentissement important. Comment puis-je identifier la tâche qui pose problème ?

Je pense que cela a quelque chose à voir avec launchd car fs_usage -w -f diskio me dit que c'est le cas. Toutes les 30 secondes, il produit une liste comme celle-ci pour chaque bloc de disque modifié dans le système (désolé, vous devez faire défiler pour voir 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

J'ai pensé que cela pouvait être dû à mon logiciel antivirus McAfee, j'ai donc exclu les fichiers que j'écrivais de l'analyse en temps réel, puis j'ai essayé de le désactiver.

J'ai alors pensé qu'il s'agissait peut-être de la recherche Spotlight, mais là encore, l'exclusion du volume sur lequel se trouvent mes fichiers de données n'a pas empêché cette tâche launchd d'accéder à nouveau aux fichiers.

Running launchctl list affiche une liste de 327 tâches. J'aimerais pouvoir la réduire à une seule.

Bien que je sois sûr que la tâche s'exécute toutes les 30 secondes après l'avoir regardée plusieurs fois, je ne trouve aucune mention d'un "30" approprié dans les fichiers de configuration. Je l'ai fait :

  • Aucune mention de "30" dans /System/Library/LaunchAgents
  • Une mention de "30" dans /System/Library/LaunchDaemons
    • com.apple.powerd.swd.plist définit ThrottleInterval à 30
  • Aucune mention de "30" dans /Library/LaunchAgents
  • Une mention de "30" dans /Library/LaunchDaemons
    • com.mcafee.virusscan.fmpd.plist définit ExitTimeout à 30
  • Aucune mention de "30" dans ~/Bibliothèque/LaunchAgents

Bien que McAfee mentionne "30", sa désactivation et l'exclusion des fichiers n'ont fait aucune différence.

Toute aide pour identifier la tâche qui accède aux blocs de disque modifiés serait appréciée.

0 votes

Pouvez-vous supprimer McAfee complètement ? Je me souviens de choses très bizarres avec McAfee : il était impossible de le quitter normalement, et il avait deux processus qui se surveillaient mutuellement pour que l'un puisse redémarrer l'autre s'il venait à mourir. En gros, je ne leur ferais pas confiance pour que le bouton de désactivation désactive réellement quelque chose.

0 votes

@BallpointBen - Malheureusement, la suppression complète de McAfee ne ferait pas plaisir à mes informaticiens locaux et je dois vivre avec eux. Nous ne savons même pas qu'il s'agit de McAfee, sauf que nous nous attendons à ce que McAfee frappe les fichiers récemment modifiés.

0 votes

C'est probablement évident, mais assurez-vous que vous n'avez pas de synchronisation en nuage active sur ces répertoires (icloud, etc.).

1voto

Insomniac Software Points 1843

J'ai eu le même problème il y a quelque temps, mais il s'est avéré qu'il s'agissait des services d'indexation Spotlight (mds, mdworker, etc.) qui sont lancés par launchd.

Ouvrez Spotlight dans les préférences système, passez à l'onglet Confidentialité, puis faites glisser votre dossier personnel dans la fenêtre. Spotlight ignorera alors votre dossier personnel et tous ses sous-dossiers.

Si vous ne voulez pas exclure tous vos fichiers, créez un dossier spécifique pour cette application à forte E/S et configurez Spotlight pour qu'il ignore uniquement ce dossier.

Pour une méthode plus " geek ", voici quelques commandes shell à exécuter qui excluront le disque entier de l'indexation Spotlight. J'utilise ces commandes sur tous les disques externes USB/flash dès que je le peux.

Touchez ces fichiers à la racine du lecteur à exclure, ainsi cd / pour le lecteur interne principal ou cd /Volumes/USB_FLASH_DRIVE_NAME pour un lecteur externe USB/FLASH, puis

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

et pour arrêter de vous demander si vous voulez utiliser le disque pour les sauvegardes TimeMachine

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

0voto

Lorsque cela se produit, essayez de faire

launchctl list|grep xxxxx

dans le terminal où xxxx est le numéro apparaissant à la fin de votre sortie fs_usage, c'est-à-dire le numéro d'identification de l'utilisateur. launchd.9793620 dans la liste que vous avez fournie.

0 votes

Mes excuses - je n'ai pas pu faire de test avant aujourd'hui. La triste réponse est "absolument rien". Je pense que c'est parce que le numéro dans la sortie fs_usage est un ID de thread, mais le numéro dans la liste launchctl est un ID de processus.

0 votes

Pas besoin d'excuses, c'est vous qui avez des problèmes ! Vous avez raison, en effet : Je viens de tester que mon idée ne fonctionne pas sur mon Sierra. Désolé, j'aurais dû tester mais j'étais sur mon téléphone

0 votes

J'essaie de trouver un outil permettant de répertorier tous les fils de discussion en cours. Sous Linux, il y a htop et il peut être installé sous MacOS, alors je me suis lancé, mais il n'y a pas de support pour afficher tous les threads :-(

LesApples.com

LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.

Powered by:

X