Erst kürzlich habe ich festgestellt, dass meine Akkulaufzeit erheblich gesunken ist und der "kernel_task" -Prozess ziemlich viel CPU verbraucht (konstante 1-6% auf meinem 2,8 GHz Dual-Core i7, 2010 MBP). Offensichtlich denke ich, dass die CPU-Auslastung von kernel_task zum Batterieverlust beiträgt, und ich muss herausfinden, warum.
Bei der Suche in Google scheint es, dass kernel_task die OS X-Version von "svchost.exe" von Windows ist - der notorische Alles-tun-Prozess, den Sie niemals wirklich debuggen können. Sie müssen lediglich die Schalter manuell umlegen, bis einer von ihnen funktioniert.
Gibt es eine Möglichkeit, wie ich der außer Kontrolle geratenen Aktivität von kernel_task leichter auf den Grund gehen kann? Ich habe keinen Neustart versucht, da das zugrunde liegende Problem dadurch nicht wirklich behoben wird.
Der Aktivitätsmonitor zeigt die CPU-Auslastung an. Wenn ich Inspect drücke, werden 77 Threads, 2 Ports, Stunden und Stunden an CPU-Zeit angezeigt, die Context Switches steigen um ungefähr 400 pro Sekunde und die Mach Messages In und Out steigen beide um ungefähr 6.000 pro Sekunde.
Wie kann ich diesen kernel_task
Prozess irgendwie inspizieren oder überwachen und herausfinden, was diese ganze Kraft tatsächlich verbraucht?
(Hinweis: Meine aktuellen Verdächtigen sind das kürzlich veröffentlichte 10.6.7-Update, das Firefox-Update von 4 Beta 10 auf RC oder ScreenResX - all dies sind Dinge, die ich in letzter Zeit getan habe und die mir einfallen)
kernel_task
als außer Kontrolle beschreiben. Der Aktivitätsmonitor ist möglicherweise nicht das beste Dienstprogramm für Diagnosen in diesem Bereich. Fügen Sie in der Konsole Systemprotokollabfragen hinzu, um herauszufinden, wie die Kernel-Task verwendet wird. Verfeinern Sie dann die Eröffnungsfrage zu einer Frage, die möglicherweise leichter beantwortet werden kann.Antworten:
Ich hatte eine ähnliche Frage zum Identifizieren von mit kernal_task verbundenen Dateien und Programmen mit dem folgenden Terminalbefehl:
Dadurch werden verschiedene Kexts und der damit verbundene Speicher angezeigt. Zum Beispiel
6184960 com.apple.driver.AirPort.Brcm4360
ist es ein großes Problem für mich, aber ich kann nicht viel dagegen tun, wenn ich WLAN nutzen möchte.Einer der Vorschläge, die ich erhalten habe, war, nachzuschlagen, ob alle nicht von Apple stammenden Kexts Speicher belegen, indem ich die obigen Anweisungen weiterleite
grep -v com.apple
. Möglicherweise verbrauchen einige Programme, die nicht von Apple stammen, Ihre Ressourcen. Sie sollten in der Lage sein, diese zu entfernen, ohne etwas zu beschädigen.Die uralte Lösung ist natürlich, den Computer neu zu starten. Manchmal ist das alles, was erforderlich ist, um Prozesse auf die normale CPU-Auslastung zurückzusetzen.
quelle
man kextstat
es und sehen Sie sich denawk
Befehl an$4
. Er sieht aus wie die Größe des Kext-Speichers. Sinnvoll in Anbetracht der Frage.Hier ist eine großartige Erklärung, was eine kernel_task ist. Dies können Treiber (kexts), Netzwerk- oder Festplattenaktivitäten sein. Sie können Instrumente nicht einfach zum Anhängen an den
kernel_task
Prozess verwenden.Suchen Sie nach anderen Anzeichen wie Protokollen (Console.app), Datenträgeraktivität (zum Beispiel:)
iotop
fs_usage
, Netzwerkaktivität (versuchen Sie, die Verbindung zum lokalen Netzwerk zu trennen, Geräte in den Netzwerkeinstellungen auszuschalten), und deinstallieren Sie die (kextunload
) Speichertreiber stammen von Drittanbietern - Tablets, USB 3G-Modems usw. Suchen Sie nach Anwendungen, die Kexts installierenStellen Sie außerdem sicher, dass Ihr Dateisystem nicht beschädigt ist, falls Sie kürzlich einen Absturz hatten. Führen Sie eine Überprüfung durch.
quelle
kernel_task
war wieder ein gesundes Aktivitätsniveau erreicht.Wie von @Christopher erwähnt, kann Hitze dazu führen, dass die CPU von kernel_task einen Spitzenwert erreicht. Der Grund ist in diesem Beitrag aufgeführt. „Beheben“ von kernel_task-CPU-Problemen in MacOS Lion 10.7 . Anscheinend nimmt die Datei ACPI_SMC_PlatformPlugin.kext beim Aufheizen der CPU CPU-Zyklen in Anspruch, um die tatsächliche CPU-Auslastung zu verringern.
Eine Lösung besteht darin, Ihren Mac (z. B. Lüfter) über einen externen Lüfter oder etwas wie SMCFanControl abzukühlen .
Der Artikel gibt eine andere Lösung, die darin besteht, den Unterkext zu entfernen, der dieses Verhalten auslöst. Obwohl ich zugeben muss, bin ich mir persönlich nicht sicher, wie sicher es ist, dieses Verhalten auszuschalten.
quelle
kernel_task
Ist normalerweise außer Kontrolle, wenn einige andere Prozesse Systemaufrufe oder Ressourcen (Speicher- oder Festplatten-E / A-Ereignisse) überlasten.In diesem Fall können Sie das
fs_usage
Berichterstellungsdienstprogramm verwenden, das Ihnen in Echtzeit Systemaufrufe und Seitenfehler im Zusammenhang mit der Dateisystemaktivität anzeigt.Führen Sie diesen Befehl in Terminal aus:
Beobachten Sie dann, welche Prozesse einige Systemaufrufe häufig ausführen, und erwägen Sie, sie zu schließen / zu beenden, wenn Sie sie nicht verwenden.
Weitere Informationen finden Sie in der Spalte TIME INTERVAL (Zeitintervall) , in der die für den Systemaufruf verstrichene Zeit angegeben ist. Ein
W
nach Ablauf der Zeit erscheinendes Symbol zeigt an, dass die Aktivität für den Prozess geplant wurde (in diesem Fall enthält die verstrichene Zeit die Wartezeit).Führen Sie zum Filtern der Prozesse, die in den Systemaufrufen das meiste Zeitintervall verwenden, Folgendes aus:
Hier sehen Sie in der letzten Spalte die hungrigsten Prozesse (in Bezug auf die Kernel-Zeit). Sie können die Anzahl der Nullen für die Genauigkeit anpassen (weniger angezeigte Nullen, mehr Zeitaufwand).
Weitere Ideen finden Sie auch unter: Wie kann die Auslastung des Taskspeichers im Kernel untersucht werden?
Hier sind die häufigsten Probleme:
VBoxHeadless
: Wenn Sie VMs (über Vagrant) verwenden, sollten Sie sie anhalten, wenn sie nicht verwendet werden.mtmd
: Es scheint, dass Time Machine Ihre Daten stündlich sichert, auch wenn Ihr Sicherungslaufwerk nicht angeschlossen ist (so genannte lokale Snapshots ). Versuchen Sie daher, es zu deaktivieren (sudo tmutil disablelocal
).wine
: Wenn Sie Windows-Apps ausführen, sollten Sie diese schließen, wenn Sie sie nicht verwenden.Chrome
: Beschränken Sie die Anzahl der gleichzeitig geöffneten Registerkarten (versuchen Sie es mit OneTab und / oder TGS ) oder beenden Sie einige Erweiterungsprozesse ( JavaScript ) über den Task-Manager , da jede Registerkarte einen eigenen Prozess generieren kann.Check: Chrome Add - on „Seite (n) reagiert nicht“ Nachricht zu stoppen .
quelle
grep
selbst:sudo fs_usage | grep -v -e '0.0000' -e 'iTerm2' -e 'grep'
Ich hatte einen massiven Anstieg in der CPU-Auslastung von kernel_task und es stellte sich heraus, dass mein CPU-Lüfter teilweise nicht angeschlossen war. kernel_task hat etwas mit dem Drosseln der CPU zu tun, wenn es zu heiß wird. In Ihrem Fall ist Ihr Lüfter möglicherweise nur mit Müll und Staub verklebt und muss gereinigt werden.
quelle
Ich hatte das gleiche Problem in Yosemite, aber dank dieser guten Seele, die auf diesem anderen guten Kerl beruhte, konnte ich es lösen. Ich kann immer noch nicht verstehen, was passiert ist, aber nachdem ich ein ganzes Wochenende damit verbracht habe, es zu klären, habe ich einfach aufgegeben und befolge blind seine Anweisungen. Schau dir meine Verzweiflung im Aktivitätsmonitor an:
Seien Sie vorsichtig, machen Sie immer zuerst ein Backup und lesen Sie die bereitgestellten Links zur Erklärung. Ich übernehme keinerlei Verantwortung für etwaige Schäden. Du wurdest gewarnt.
quelle
Ich bin mit einem neuen 2011er MacBook Pro auf OSX Lion und hatte vor kurzem kernel_task, das ungefähr 25-30% der CPU und meines Lüfters für Stunden und Stunden mit maximaler Geschwindigkeit laufen ließ. Ich habe eine Sache nach der anderen ausprobiert und gelöst, indem ich 5 oder 6 Fenster in der Finder-App geschlossen habe. Ich kann nicht sagen, warum, aber es war klar, dass.
quelle
Auf meinem Mac ist die CPU-Auslastung von kernel_task proportional zur von mir genutzten Internetbandbreite und reicht von etwa 0% bis 50%. Dies liegt wahrscheinlich an den Treibern für mein Huawei 3G-Modem (HuaweiDataCardDriver.kext).
Sie können versuchen, die Kernel-Erweiterungen zu deaktivieren. Es ist nicht erforderlich, kextunload zu verwenden: Es ist sicher, die kext-Bundles einfach aus / System / Library / Extensions / in einen anderen Ordner zu verschieben und neu zu starten. Sie können Consultant's Canary verwenden oder
kextstat | grep -v com.apple
Kernel-Erweiterungen auflisten, die nicht mit OS X geliefert wurden.quelle
Im Folgenden finden Sie einige nützliche Befehle, mit denen Sie Probleme mit kernel_task außerhalb der Kontrolle beheben können:
Profilieren Sie das gesamte System und konzentrieren Sie sich dabei auf den Kernelprozess (PID: 0). Führen Sie Folgendes aus:
launchd
Verwenden Sie für bestimmte Prozesse (wie )sample
zsudo sample launchd
. B. oder per PID.Um den Speicherverbrauch nach Kernel-Task zu erfassen, verwenden Sie (standardmäßig nach Dirty sortiert):
Hinweis: Verwenden Sie diese Option
-a
, um alle Prozesse als Ziel festzulegen.Um systemweite Diagnose - Informationen von mehreren utils zu sammeln, führen:
sudo sysdiagnose
.Dies kann auch durch Drücken von Shift- Control- ⌥- ⌘-. (Punkt) ausgelöst werden .
Der Bildschirm sollte beim Start blinken und einige Minuten warten, bis die Datei im Finder angezeigt wird .
Siehe: Wie erhalten Sie Systemdiagnosedateien von OS X?
Dann entpacken und überprüfen Sie die Dateien wie
footprint*.txt
,spindump.txt
,taskinfo.txt
,bc_stats.txt
und andere.Überprüfen Sie die
vm.swapusage
Kernelzustände, zsysctl -a | grep ^vm.swapusage
.Grundsätzlich gilt: Je mehr Auslagerungsdateien Sie verwenden (überprüfen Sie die Auslagerungsdateien, von
/private/var/vm
denen verwaltet wirddynamic_pager
, siehe :), destoman dynamic_pager
mehr Probleme bereitet der Kernel aufgrund von Swapins / Swapouts- Vorgängen (sieheman vm_stat
undman fs_usage
) mit der Leistung . Führen Sie zum Testen Folgendes aus:Hinweis: Hit Control- Czu stoppen.
quelle
Für mich hatte ich einen Prozess (Netbeans in diesem Fall, der eine Datei mit 20 GB liest) und er würde 80% CPU für Netbeans und 20% CPU für kernel_task verwenden (sehr verdächtig). Dadurch lief mein gesamtes System wie Teer.
Ebenfalls verdächtig ist, dass "Menumeter" viel "sys" -Zeit pro CPU melden würden. Sie können dies auch im Befehl "top" sehen, wie
CPU usage: 21.40% user, 23.74% sys
Später könnten es Netbeans mit 120% CPU sein, kernel_task mit 65%, aber trotzdem waren sie beide "hohe CPU zur gleichen Zeit"
sudo fs_usage
zeigte viel davon:Meine Theorie besagt, dass Netbeans so viel "gelesen" hat, dass Seitenfehler sogar dazu führten, dass ein eigenes Programm ausgeführt wurde (dh, es wurde gesendet, um das eigene Programm auszutauschen), sodass eine Warteschlange hinter dem Seitenfehlersystem erstellt wurde. Und wahrscheinlich tauschen Sie auch "andere Programme" aus, damit das gesamte System inaktiv wird.
Mit
top
wurde die FAULT-Spalte ebenfalls um 70 K / s erhöht.quelle
Mein MacBook Pro war fast unbrauchbar, weil kernel_task wochenlang überlastet war. Gleichzeitig wurde der Akku aufgepumpt und ich entschied mich schließlich, das Apple Center in Rom aufzusuchen, um ihn zu ersetzen ... auch wenn die Garantie abgelaufen ist auch Tastatur) für 0 € kosten. Noch besser ... kernel_task Problem verschwindet plötzlich !!! Ich bin mir also ziemlich sicher, dass es direkt oder indirekt an der Batterie lag
quelle