Aide à identifier ce qui utilise le processeur lorsque la liste de tous les processus du moniteur d'activité n'aide pas

4

Problème

Après le redémarrage et uniquement avec Activity Monitor ouvert, mon MacBook Pro (10.6, i7) affiche un pourcentage d'inactivité très élevé (98% ou plus), mais diminue ensuite de 40% à 50%.

Dans la liste du moniteur d'activité de tous les processus :

  • rien ne compte pour cette goutte.

Cinq questions

Quelle est la raison de la baisse du pourcentage d'inactivité?

OS X exécute-t-il quelque chose qui n'est pas répertorié en tant que processus dans Activity Monitor?

Est-ce qu'il ferme un processeur ou deux?

Y a-t-il un moyen de le forcer à me donner toute l'attention du processeur, même si je ne l'utilise pas?

Pour ce qui est ci-dessous, existe-t-il de meilleurs moyens de mesurer l'impact total d'une application sur le système, puisque le processeur de l'application ne montre pas toute l'activité secondaire qu'une application entraîne la réalisation d'un système?

Contexte

J'essaie de mesurer les performances d'une application particulière. L'une des métriques, étant donné qu'une partie de l'activité de l'application est exécutée à l'intérieur du noyau sous la forme d'appels système, est CPU% inactif.

Si OS X exécute des tâches en arrière-plan que je ne peux pas voir, ou arrête les processeurs ou les ralentit, cela aura évidemment un impact sur mes mesures.

Adam Davis
la source
Pourquoi ne regardez-vous pas la charge des processus en cours et déterminez-vous ce qui utilise votre processeur? Et par extension, pourquoi ne pas vérifier cela pour l'application en particulier?
Gerry
1
@Gerry Je suppose que je ne l'ai pas précisé dans mon message - je prends en compte l'utilisation du processeur par tous les processus en cours, telle que présentée par le moniteur d'activité. Ils ne totalisent pas près de 10%, mais les 50-60% que le temps d'inactivité de la coupe suggère qu'ils le devraient.
Adam Davis
1
Vous devez demander si vous avez sélectionné 'Tous les processus' dans AM?
KidPub
1
@KidPub Oui, je regarde tous les processus.
Adam Davis
1
En utilisant /Library/Application Support/HWPrefs/CPUPalette.app et désactiver deux cœurs me donne les mêmes symptômes, alors je suppose que OS X étrangle de manière agressive les processeurs. Si vous savez comment désactiver ou contrôler la régulation du processeur, consultez apple.stackexchange.com/questions/41045/…
Adam Davis

Réponses:

1

Les tests semblent montrer que le coupable est celui d'Intel Turbo technologie, qui désactive les cœurs de processeur à la volée sans en informer le système d'exploitation. Puisqu'ils n'exécutent pas le processus d'inactivité du processeur, le moniteur d'activité ne les prend pas en compte et il semble que la machine soit inactive à moins de 50% lorsqu'il est en réalité presque inactif.

Pour le moment, il ne semble pas que cela puisse être facilement désactivé ou contrôlé sous OS X: Comment désactiver la limitation et la désactivation de la CPU?

Turbo boost est intégré à de nombreux processeurs Core i7 et i5, ainsi qu'à certains des derniers processeurs Core i3. Vous devrez vérifier la version de votre processeur par rapport à celle d'Intel liste des processeurs compatibles Turbo Boost pour savoir si le vôtre l'a. Si vous n'avez pas de pont de sable, vous n'avez probablement pas de turbo boost.

Adam Davis
la source
0

Par défaut, le moniteur d'activité affiche uniquement les processus exécutés sous votre compte utilisateur et non les tâches système, ainsi que les tâches d'autres utilisateurs de la machine.

enter image description here

La sélection d’une autre vue dans le contrôle de la barre d’outils devrait vous aider à savoir ce qui prend du temps CPU sur votre Mac. Je recommande fortement d'obtenir Xcode depuis l'App Store et en utilisant Instruments pour tout profilage et réglage avancés. C'est un outil beaucoup plus capable pour ce travail une fois que vous avez remarqué quelque chose qui ne va pas avec Activity Monitor.

bmike
la source
Je regarde tous les processus. Il ne montre rien qui consomme le temps CPU suggéré par le% inactif.
Adam Davis
1
Wow - il existe un cas intéressant où tout processus qui commence après un intervalle d'échantillonnage mais meurt avant le prochain intervalle d'échantillonnage ne sera pas capturé par Activity Monitor. Tu auras besoin de dtrace ou des instruments pour obtenir des processus morts. J'essaye d'habitude fs_usage espérer que ces processus rapides accèdent à un fichier quelconque pour déterminer quel auteur est à l'origine du réel, mais fantôme au regard de l'utilisation du processeur par le type Activity Monitor.
bmike