Helfen Sie zu identifizieren, was die CPU verwendet, wenn die Aktivitätsmonitorliste aller Prozesse nicht hilft

Problem

Nach dem Neustart und nur mit geöffnetem Aktivitätsmonitor zeigt mein MacBook Pro (10.6, i7) einen sehr hohen Leerlaufprozentsatz (98 % oder höher), fällt dann aber kurz darauf auf 40 % - 50 % ab.

In der Activity Monitor Liste aller Prozesse :

  • nichts erklärt diesen Rückgang.

Fünf Fragen

Was ist der Grund für den Rückgang des Leerlaufprozentsatzes?

Führt OS X etwas aus, das nicht als Prozess in der Aktivitätsanzeige aufgeführt ist?

Fährt es ein oder zwei CPU herunter?

Gibt es eine Möglichkeit, es zu zwingen, mir die volle Aufmerksamkeit der CPU zu geben, obwohl ich es nicht verwende?

Gibt es für das Folgende bessere Möglichkeiten, um zu messen, wie viel Gesamtsystemauswirkung eine App hat, da der App-CPU-% nicht alle sekundären Aktivitäten anzeigt, die eine App verursacht, die ein System abschließt?

Hintergrund

Ich versuche, die Leistung einer bestimmten App zu messen, und eine der Metriken, da ein Teil der App-Aktivität innerhalb des Kernels in Form von Systemaufrufen ausgeführt wird, ist CPU-Leerlauf %.

Wenn OS X Dinge im Hintergrund ausführt, die ich nicht sehen kann, oder CPUs ausschaltet oder verlangsamt, dann wirkt sich das offensichtlich auf meine Messungen aus.

Warum sehen Sie sich nicht die Auslastung der laufenden Prozesse an und stellen fest, was Ihren Prozessor beansprucht? Und im weiteren Sinne, warum überprüfen Sie das nicht speziell für die App?
@Gerry Ich nehme an, ich habe es in meinem Beitrag nicht deutlich gemacht - ich berücksichtige die gesamte CPU-Auslastung aller laufenden Prozesse, wie sie vom Aktivitätsmonitor angezeigt werden. Sie summieren sich nicht annähernd auf 10 %, ganz zu schweigen von den 50-60 %, die die CUP-Leerlaufzeit vorschlägt.
Muss fragen, hast du in AM "Alle Prozesse" ausgewählt?
@KidPub Ja, ich sehe mir alle Prozesse an.
Das Verwenden /Library/Application Support/HWPrefs/CPUPalette.appund Deaktivieren von zwei Kernen führt zu denselben Symptomen, daher vermute ich, dass OS X die CPUs aggressiv drosselt. Wenn Sie wissen, wie Sie die CPU-Drosselung deaktivieren oder steuern können, besuchen Sie apple.stackexchange.com/questions/41045/…

Antworten (2)

Tests scheinen zu zeigen, dass der Übeltäter Intels Turbo-Boost- Technologie ist, die Prozessorkerne im laufenden Betrieb deaktiviert, ohne das Betriebssystem zu informieren. Da sie den CPU-Leerlaufprozess nicht ausführen, berücksichtigt der Aktivitätsmonitor sie nicht, und es scheint, dass die Maschine zu weniger als 50 % im Leerlauf ist, obwohl sie in Wirklichkeit fast 100 % im Leerlauf ist.

Im Moment sieht es nicht so aus, als ob dies unter OS X einfach deaktiviert oder gesteuert werden kann: Wie kann ich CPU-Drosselung und CPU-Deaktivierung deaktivieren?

Turbo Boost ist in viele Core i7- und i5-Prozessoren und einige der neuesten Core i3-Prozessoren integriert. Sie müssen Ihre Prozessorversion mit der Intel- Liste der Turbo-Boost-fähigen Prozessoren vergleichen , um herauszufinden, ob Ihre Version vorhanden ist. Wenn Sie keine Sandbrücke haben, haben Sie wahrscheinlich keinen Turbo-Boost.

Standardmäßig zeigt der Aktivitätsmonitor nur die Prozesse an, die unter Ihrem Benutzerkonto laufen, und keine Systemaufgaben sowie Aufgaben von anderen Benutzern der Maschine.

Geben Sie hier die Bildbeschreibung ein

Die Auswahl einer anderen Ansicht aus der Symbolleistensteuerung sollte helfen, zu wissen, was die CPU-Zeit auf Ihrem Mac beansprucht. Ich empfehle dringend, Xcode aus dem App Store zu beziehen und Instruments zu verwenden, um erweiterte Profilerstellung und Feinabstimmung vorzunehmen. Es ist ein weitaus leistungsfähigeres Werkzeug für diesen Job, sobald Sie mit dem Aktivitätsmonitor festgestellt haben, dass etwas nicht stimmt.

Ich sehe mir alle Prozesse an. Es zeigt nichts an, was die CPU-Zeit verbraucht, die durch den Leerlauf % vorgeschlagen wird.
Wow – es gibt einen interessanten Grenzfall, bei dem jeder Prozess, der nach einem Abtastintervall beginnt, aber vor dem nächsten Abtastintervall stirbt, nicht vom Aktivitätsmonitor erfasst wird. Sie benötigen dtraceoder Instrumente, um an tote Prozesse heranzukommen. Normalerweise versuche ich fs_usagezu hoffen, dass diese schnellen Prozesse auf eine Art Datei zugreifen, um herauszufinden, welcher Täter die tatsächliche, aber in den Augen der CPU-Auslastung des Aktivitätsmonitors Phantom verursacht.