147 votes

Comment enquêter sur l'utilisation élevée de la mémoire des tâches du noyau ?

J'étais en train d'utiliser mon MacBook Pro (avec 16 Go de RAM) comme d'habitude et j'ai eu cette fenêtre contextuelle :

Votre système n'a plus de mémoire d'application.

Pour éviter tout problème avec votre ordinateur, quittez toutes les applications que vous n'utilisez pas.

Force Quit Applications - Your system has run out of application memory - screenshot

J'en ai évidemment fermé quelques-uns que je pouvais, mais ça n'a pas aidé.

Après vérification de la mémoire, il semble que la tâche du noyau ait consommé 7 Go et que 22,36 Go de mémoire swap aient été utilisés sur un total de 23 Go (ce qui était évidemment le cas). Cependant, il me reste 20 Go d'espace libre sur mon disque dur.

Memory - iStat Menus - screenshot

Le moniteur d'activité n'a pas aidé beaucoup pendant que mon OS X se dirigeait vers la destruction.

Process Explorer

kernel_task - Memory tab - screenshotkernel_task - Statistics tab - screenshot

Mon top les statistiques avant mon gel du noyau :

Processes: 344 total, 2 running, 5 stuck, 337 sleeping, 2580 threads                                                                                                                         19:23:56
Load Avg: 1.56, 1.62, 2.09  CPU usage: 3.51% user, 8.47% sys, 88.1% idle   SharedLibs: 46M resident, 0B data, 6572K linkedit. MemRegions: 757970 total, 2139M resident, 56M private, 907M shared.
PhysMem: 9410M used (6198M wired), 556M unused. VM: 1155G vsize, 1311M framework vsize, 112872658(320) swapins, 122668389(0) swapouts. Networks: packets: 299419263/363G in, 142126838/14G out.
Disks: 58970173/1079G read, 20012389/1120G written.

A la fin, mon OS X s'est figé et j'ai dû faire un hard reset, réparer mon SDD en mode recovery et réparer ensuite (récupérer le travail perdu, corriger les conflits d'applications, vérifier mon dossier lost+found, onglets Chrome/Terminal disparus, mal de tête, etc).

Ma question est la suivante , Comment puis-je vérifier l'utilisation élevée de la mémoire d'une tâche du noyau ? ou comment gérer correctement ce genre de situation ? J'ai essayé de prendre un échantillon avec le moniteur d'activité, mais il est grisé.


Les détails de mon MacBook Pro : Intel Core i7 à 2,3 GHz (fin 2013) avec 16 Go de RAM. OS X : 10.9.5

0 votes

Le comportement de votre système est-il reproductible ? Veuillez également ajouter la version de votre système :

1 votes

@klanomath Habituellement, j'ai beaucoup de freezes, surtout avec une longue durée de fonctionnement, et ce ne sont que des freezes du noyau pour une raison inconnue (mon MBR est assez récent). Mais c'est la première fois que je vois ce popup indiquant que je n'ai plus de mémoire (avec 16 Go de RAM et 50 Go d'espace libre). Cependant, ma question principale est de savoir comment enquêter sur l'utilisation de la mémoire de la tâche du noyau, donc si c'est reproductible ne devrait pas être pertinent.

9 votes

Utilisez zprint -t (Lion) ou sudo zprint -t (Mountain Lion et versions ultérieures).

204voto

kenorb Points 11627

Il y a beaucoup de choses qui ne vont pas avec une utilisation élevée des tâches du noyau. En général, cela est lié à des processus défectueux ou lourds qui surutilisent les ressources du système (comme l'indexation du stockage, l'exécution des VM, un trop grand nombre d'onglets dans le navigateur Web ou d'autres processus d'arrière-plan).

Voici quelques méthodes qui permettent d'étudier les problèmes d'utilisation du noyau d'OS X :

Méthodes de base

  • Exécuter Console.app et vérifiez sur ' Tous les messages pour voir si quelque chose d'inhabituel se produit actuellement.

  • Utilisez Moniteur d'activité pour lire la mémoire du système et déterminer la quantité de CPU, de RAM et de disque utilisée.

    Vous pouvez également exécuter top en Terminal et tenir Space pour rafraîchir - plus facile de trouver la cause du problème ( swapins / swapouts / disques ?).

  • Exécuter sudo fs_usage en Terminal pour signaler les appels système et les défauts de page liés à l'activité du système de fichiers en temps réel (je pense que c'est la meilleure option parmi toutes les autres). Ensuite, cliquez sur Control - C pour l'arrêter.

    Action : Envisagez de supprimer les applications qui apparaissent fréquemment dans la liste, mais que vous n'utilisez pas.

    Pour en savoir plus : Comment déboguer un processus "kernel_task" hors de contrôle ?

  • Exécuter sudo syscallbypid.d (o syscallbyproc.d ), attendez un peu, tapez Control - C . Maintenant, vérifiez quel processus a généré le plus d'appels système pendant cette période (dernière colonne) et si vous le reconnaissez, pensez à le tuer. Sinon, recherchez-le sur Google et apprenez-en plus sur lui.

Méthodes avancées

  • Utilisez sysdiagnose (peut être déclenché en frappant Shift - Control - - - . (période) pour recueillir rapidement des informations de diagnostic sur l'ensemble du système, utiles pour étudier les problèmes de mémoire et de performances du système (apparaîtra dans la section "Gestion de la mémoire"). /var/tmp ) soit par vous, soit par les gars d'Apple. Pendant l'analyse, essayez de ne rien faire, quand vous avez terminé - pensez à décompresser le fichier généré et à analyser les logs.

    Voir : Comment obtenir les fichiers de diagnostic système d'OS X ?

  • Exécuter footprint pour recueillir des informations détaillées sur la mémoire au niveau du type de région VM et des octets échangés :

    sudo footprint -a

    Version plus ancienne :

    sudo footprint -all -categories -swapped -collapseSharing
  • Utilisez spindump pour profiler le système entier, ça va générer /tmp/spindump.txt (y compris le noyau et ses extensions).

  • Utilisez vm_stat pour afficher les statistiques de la mémoire virtuelle. Par exemple

    vm_stat 1 # to display every second.
  • Utilisez zprint pour vérifier les informations sur l'utilisation du noyau, c'est possible par :

    sudo zprint -t -s | head -n20

    Ça montrera les zones du noyau les plus gaspilleuses.

  • Utilisez newproc.d pour fouiner dans les nouveaux processus lors de leur exécution, creatbyproc.d pour les fichiers :

    sudo newproc.d
    sudo creatbyproc.d

    Remarque : sur les systèmes OS X les plus récents (10.11 ou plus), cela peut ne pas fonctionner lorsque protection de l'intégrité est activé (vérifié par csrutil status ).

  • Essayez sar - un rapporteur d'activité système qui peut échantillonner et rapporter divers compteurs de statistiques cumulatives gérés par le système d'exploitation.

Pour des outils de débogage plus utiles, consultez dtrace scripts ( grep dtrace /usr/bin/* ). Si vous connaissez le processus défectueux qui cause le problème, vous pouvez utiliser dtruss pour le déboguer.


Actions

Voici quelques suggestions qui peuvent vous aider à résoudre les problèmes liés au système d'exploitation.

  • Libérer un peu de mémoire inactive. Pour ce faire, vous devez d'abord vider le cache et forcer la purge du cache disque :

    sync && sudo purge

    sync - forcer l'achèvement des écritures sur disque en attente (flush cache)

    purge - force le cache du disque à être purgé (flush et vidé)

    Sa fonction est essentiellement de mettre fin à toutes les opérations d'E/S en attente qui utilisent le cache disque et de libérer tout le cache disque occupé, ce qui devrait libérer de l'espace disque pour faciliter la pagination et l'échange de la mémoire principale. Il est sûr à utiliser, car il n'affecte pas la mémoire anonyme qui a été allouée par le biais de malloc, vm_allocate, etc.

  • Utilisez des applications tierces pour vider la mémoire superflue, comme par exemple iBoostUp , SystemPal etc.

  • Vous pouvez également désactiver la fonction Spotlight temporaire :

    sudo launchctl unload -w /System/Library/LaunchDaemons/com.apple.metadata.mds.plist 

    Et envisager d'autres services par :

    sudo launchctl list | grep ^[0-9]
    sudo launchctl bslist | grep ^A
  • Quittez votre navigateur Web et vérifiez si cela vous aide. Par exemple, l'utilisation de Chrome est très utile, surtout lorsque des traitements frontaux sont effectués en arrière-plan (par exemple, Javascript) ou que des animations de type publicité rendent constamment le contenu.

1 votes

Spotlight n'arrête pas de réapparaître, alors que je ne l'utilise pas, et chaque fois que je le tue, il réapparaît la seconde d'après... Comment/doit-on s'en débarrasser ?

1 votes

@ling Je vous suggère de poser une autre question alors, puisque ceci est lié à la mémoire de tâche élevée du noyau, et non à un Spotlight spécifique.

2 votes

soupir J'ai 4 Go de RAM sur mon Mac, et tout récemment, la tâche du noyau montait à 3,1 Go, gelant pratiquement tout mon ordinateur. J'ai fermé mon onglet Google Drive, et il est descendu à 950 Mo...

6voto

fern10 Points 69

J'ai eu un problème très similaire après avoir remplacé mon écran LCD sur un iMac de fin 2012. Le ventilateur tournait à un régime élevé et l'utilisation des tâches Kernel_task du CPU était élevée. Je l'ai réduit à un capteur de température que vous devez déplacer de l'ancien écran LCD au nouvel écran de remplacement. Si vous oubliez de le faire, la vitesse du CPU et la tâche Kernel_task sont affectées, ce qui ralentit votre système.

2 votes

Raison du downvoting : Cela n'a rien à voir avec la question du PO sur utilisation de la mémoire et non sur utilisation du processeur (bien que vous ayez raison de dire que l'utilisation du CPU de kernel_task est utilisée pour empêcher le CPU d'être utilisé par une application et ainsi refroidir l'ordinateur portable).

0 votes

J'utilise 2 moniteurs étendus et j'ai ce problème. Voici l'étape que j'ai suivie pour le résoudre. developer.apple.com/forums/thread/17263

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