Je comprends que le processus kernel_task est lié à plusieurs fichiers .kext situés dans Système/Bibliothèque/Extensions (et peut-être Bibliothèque/Extensions ?). Comment puis-je identifier les fichiers qui contribuent à l'utilisation de plus de 400 Mo de mémoire identifiée dans Activity Monitor ? Puis-je faire quelque chose pour désinstaller ou supprimer les processus inutiles afin de réduire l'utilisation de la mémoire ?
Réponse
Trop de publicités?J'ai cherché quelques commandes génériques qui affichent/manipulent les extensions du noyau. kextstat
a attiré mon attention et d'après son résultat, la 4ème colonne est
Le nombre d'octets de mémoire du noyau que le kext occupe. Si c'est zéro, le kext est une partie intégrée du noyau qui a un enregistrement en tant que kext pour résoudre les dépendances entre les kexts.
Le seul problème était que sa taille était en hexadécimal. J'ai donc converti l'hexadécimal en décimal et n'ai imprimé que les informations pertinentes (comme l'id du bundle kext).
kextstat -l -k | awk '{n = sprintf("%d", $4); print n, $6}' | sort -n
La décomposition :
-
kextstat -l -k
- Affiche une liste des kexts chargés non intégrés. -
| awk '{n = sprintf("%d", $4); print n, $6}'
- pipe la sortie versawk
convertissez la 4ème colonne "size" d'hexadécimal en décimal, imprimez cela et l'id du paquet de kext. -
| sort -n
- pipe la sortie verssort
et trier la liste en utilisant la comparaison numérique (de sorte que "10" ne soit pas inférieur à "1").
Vous pouvez envoyer la sortie vers tail -n 3
pour obtenir le top 3 des accapareurs de mémoire. Voici les miens :
1757184 com.apple.nvidia.driver.NVDAGK100Hal
2572288 com.apple.nvidia.driver.NVDAResman
3923968 com.apple.driver.AirPort.Brcm4360
Mise à jour : vous pouvez également envoyer ce message à grep -v com.apple
pour voir quels kexts non-apple sont chargés.