Question Pourquoi lance-t-on des processus de mise à mort?


J'ai remarqué que mon système.log est inondé de messages comme celui-ci:

May  5 12:56:08 macpro com.apple.launchd[1] (com.apple.qtkittrustedmoviesservice[8568]): Exited: Killed: 9
May  5 12:56:08 macpro kernel[0]: memorystatus_thread: idle exiting pid 8568 [qtkittrustedmovi]
May  5 12:56:11 macpro com.apple.launchd[1] (com.apple.audio.ComponentHelper[8564]): Exited: Killed: 9
May  5 12:56:11 macpro kernel[0]: memorystatus_thread: idle exiting pid 8564 [com.apple.audio.]
May  5 12:56:12 macpro com.apple.launchd[1] (com.apple.sleepservicesd[8572]): Exited: Killed: 9
May  5 12:56:12 macpro kernel[0]: memorystatus_thread: idle exiting pid 8572 [SleepServicesD]
May  5 12:56:12 macpro com.apple.launchd[1] (com.apple.audio.SandboxHelper[8563]): Exited: Killed: 9
May  5 12:56:12 macpro kernel[0]: memorystatus_thread: idle exiting pid 8563 [com.apple.audio.]

Je comprends que launchd pourrait tuer des processus lorsque la RAM est pleine, mais je pense que je dispose de beaucoup de RAM (32 Go). J'ai généralement une très petite quantité de mémoire disponible, mais il y a toujours plus de 15 Go de mémoire "inactive" lorsque je vérifie le moniteur d'activité. Cela ne pose pas vraiment de problème, mais je voudrais désencombrer mon fichier journal pour que je puisse voir plus facilement les problèmes réels.


2
2018-05-05 20:12


origine


Cela ressemble à un rapport de statut de sortie (que le processus était tué), pas nécessairement qui l'a lancé lui-même l'a tué. - Kevin Reid
Je ne suis pas sûr d'être d'accord ... mais si c'est le cas, savez-vous comment voir ce qui tue les processus? - Elliott B


Réponses:


com.apple.launchd[1] (com.apple.audio.ComponentHelper[8564]): Exited: Killed: 9

C'est launchd signalant qu'un processus qu'il avait démarré (numéro 8564, nommé "com.apple.audio.ComponentHelper") s'est terminé de manière inattendue car il a reçu le signal 9 (SIGKILL).

La cause est en fait indiquée par la ligne suivante (plutôt que la précédente) dans votre extrait de journal.

kernel[0]: memorystatus_thread: idle exiting pid 8564 [com.apple.audio.]

(Il semble que syslog soit simplement traité et / ou vider les lignes dans le désordre.) Le tueur est le noyau lui-même. Selon ce (voir deuxième paragraphe sous l'en-tête "MemoryStatus et Jetsam"), dans OS X, le thread memorystatus du noyau réagit à la mémoire libre en dessous d'un certain seuil en tuant les processus "marqués pour inactif".

Ainsi, le noyau était en train de tuer des processus dans un dernier effort pour éviter de manquer de mémoire vive. Je serais également sceptique avec autant de RAM, mais c'est ce que ces entrées de journal semblent indiquer. Notez que la mémoire "inactive" n'est pas libre ou "n'est plus nécessaire". La mémoire inactive est simplement la moins récemment utilisée de la mémoire actuellement allouée. Il n'est pas disponible pour une réutilisation à moins que et jusqu'à ce que son contenu ait été transféré sur le disque. (J'ai trouvé ce explication très utile.) Votre fichier d'échange était-il complet? Alternativement, je me demande si cela pourrait arriver si le téléavertisseur ne pouvait simplement pas écrire sur le disque assez rapidement pour faire face à une rafale soudaine d'allocation (et d'écriture réelle).


3
2017-08-27 03:31



Je n'ai jamais pensé à une limite de fichier d'échange sur OS X, mais la mienne ne dépasse jamais 50 Mo. - Elliott B