Niedawno zauważyłem, że mój czas pracy baterii jest dość znaczny, a proces „kernel_task” z dużą ilością procesora (stały 1-6% na moim dwurdzeniowym procesorze 2,7 GHz i7, 2010). Oczywiście myślę, że użycie procesora przez jądro_task przyczynia się do spadku baterii i muszę dowiedzieć się, dlaczego.
Przeszukując Google, wydaje się, że kernel_task jest wersją „svchost.exe” systemu Windows X - notorycznym procesem wykonywania wszystkiego, czego nigdy nie można naprawdę debugować, wystarczy ręcznie przerzucić przełączniki, aż jeden z nich zadziała.
Czy jest jakiś sposób, aby łatwiej dostać się na dół poza kontrolą kernel_task? Nie próbowałem restartu, ponieważ jeśli to „naprawi” to, to tak naprawdę nie naprawia podstawowego problemu.
Monitor aktywności pokazuje użycie procesora. Kiedy nacisnę przycisk Inspect, wyświetla 77 wątków, 2 porty, godziny i godziny pracy procesora, przełączniki kontekstowe zwiększają się o około 400 na sekundę, a Mach Messages In i Out zwiększają się o około 6000 na sekundę.
Jak mogę w jakiś sposób sprawdzić lub monitorować ten kernel_task
proces i dowiedzieć się, co faktycznie wykorzystuje całą tę moc?
(uwaga: moimi obecnymi podejrzanymi są najnowsza aktualizacja 10.6.7, aktualizacja Firefoksa z 4 wersji beta 10 do wersji RC lub ScreenResX - to wszystko, co ostatnio zrobiłem, o czym mogę pomyśleć)
kernel_task
tego niekontrolowanym. Monitor aktywności może nie być najlepszym narzędziem do diagnozowania w tym obszarze. W konsoli dodaj zapytania do dziennika systemu, aby pomóc ci określić, w jaki sposób używane jest zadanie jądra; następnie dopracuj pytanie wstępne do pytania, na które można łatwiej odpowiedzieć.Odpowiedzi:
Miałem podobne pytanie o to, jak zidentyfikować pliki i programy podłączone do kernal_task za pomocą następującego polecenia terminala:
Spowoduje to wyświetlenie różnych tekstów i związanej z nimi pamięci. Na przykład,
6184960 com.apple.driver.AirPort.Brcm4360
to dla mnie duży świnia, ale nie mogę nic na to poradzić, jeśli chcę korzystać z Wi-Fi.Jedną z sugestii, które otrzymałem, było sprawdzenie, czy kext-y inne niż Apple zajmują pamięć, przesyłając powyższe
grep -v com.apple
. Możliwe, że niektóre programy inne niż Apple zużywają twoje zasoby. Powinieneś być w stanie usunąć je bez niszczenia czegokolwiek.Odwiecznym rozwiązaniem jest oczywiście ponowne uruchomienie komputera. Czasami to wszystko, czego potrzeba, aby przywrócić procesy do normalnego poziomu wykorzystania procesora.
źródło
man kextstat
, patrząc na to iawk
chwytając komendę$4
, wygląda jak rozmiar użycia pamięci kext. Rozważanie pytania ma sens.Oto świetne wyjaśnienie, czym jest zadanie jądra. Mogą to być sterowniki (kexts), aktywność sieciowa lub dyskowa. Nie można po prostu użyć instrumentów, aby dołączyć się do
kernel_task
procesu.Poszukaj innych znaków, takich jak dzienniki (Console.app), aktywność dysku (na przykład:), aktywność
iotop
fs_usage
sieciowa (spróbuj rozłączyć się z siecią lokalną, wyłączając urządzenia w preferencjach sieciowych), spróbuj odinstalować / usunąć zekextunload
sterowników pamięci pochodzą od stron trzecich - tablety, modemy USB 3g itp. Sprawdź, czy są aplikacje instalujące kextsUpewnij się także, że twój system plików nie jest uszkodzony, jeśli ostatnio miałeś jakieś awarie - sprawdź.
źródło
kernel_task
wrócił do normalnego poziomu aktywności.Jak wspomniano przez @Christopher, ciepło może powodować wzrost wydajności procesora jądra. Powód wymieniono w tym artykule „Naprawianie” kernel_task Problemy z procesorem w MacOS Lion 10.7 . Najwyraźniej, gdy procesor się nagrzeje, plik ACPI_SMC_PlatformPlugin.kext zajmie cykle procesora, próbując zmniejszyć faktyczne obciążenie procesora.
Jednym z rozwiązań jest schłodzenie komputera Mac (np. Wentylatora) przez wentylator zewnętrzny lub coś w rodzaju SMCFanControl .
W artykule podano inne rozwiązanie, które polega na usunięciu podtekstu, który wyzwala to zachowanie. Chociaż muszę przyznać, że osobiście nie jestem pewien, jak bezpieczne jest wyłączenie tego zachowania.
źródło
Zwykle
kernel_task
wymyka się spod kontroli, gdy niektóre inne procesy nadmiernie wykorzystują wywołania systemowe lub zasoby (zdarzenia we / wy pamięci lub dysku).Gdy tak się stanie, możesz skorzystać z
fs_usage
narzędzia raportowania, które w czasie rzeczywistym pokazuje połączenia systemowe i błędy strony związane z aktywnością systemu plików.Uruchom więc to polecenie w terminalu:
następnie obserwuj, które procesy często wykonują niektóre wywołania systemowe, a jeśli ich nie używasz, rozważ ich zamknięcie / zabicie.
Aby być bardziej szczegółowym, sprawdź kolumnę CZAS INTERWAŁU, która daje upływ czasu spędzonego na wywołaniu systemowym.
W
Pojawiające upływie czasu wskazuje, że proces został zaplanowany z działalności (w tym wypadku obejmuje czas, jaki upłynął czas oczekiwania).Aby więc odfiltrować procesy, które wykorzystują najwięcej czasu w wywołaniach systemowych, uruchom:
który pokaże Ci w ostatniej kolumnie najbardziej głodne procesy (pod względem czasu jądra). Możesz dostosować liczbę zer dla precyzji (mniej wyświetlanych zer, więcej czasu spędzonego).
Aby uzyskać więcej pomysłów, sprawdź również: Jak zbadać użycie pamięci zadań wysokiego jądra?
Oto najczęstsze problemy:
VBoxHeadless
: jeśli używasz maszyn wirtualnych (przez włóczęgę), rozważ zawieszenie ich, gdy nie są używane;mtmd
: wygląda na to, że Time Machine wykonuje kopie zapasowe danych co godzinę, nawet jeśli dysk kopii zapasowej nie jest podłączony (tak zwane lokalne migawki ), więc spróbuj go wyłączyć (sudo tmutil disablelocal
);wine
: jeśli używasz aplikacji Windows, rozważ zamknięcie ich, gdy nie są używane;Chrome
: ogranicz liczbę otwartych kart jednocześnie (wypróbuj OneTab i / lub TGS ) lub zabij niektóre procesy rozszerzeń ( JavaScript ) za pomocą Menedżera zadań , ponieważ każda karta może wygenerować osobny proces.Sprawdź: dodatek do Chrome, aby zatrzymać komunikat „Strony nie odpowiadają” .
źródło
grep
samego siebie:sudo fs_usage | grep -v -e '0.0000' -e 'iTerm2' -e 'grep'
Miałem ogromny skok w zużyciu procesora przez kernel_task i okazało się, że mój wentylator procesora był częściowo odłączony. kernel_task ma coś wspólnego z dławieniem procesora, gdy robi się za gorąco. W twoim przypadku być może twój fan jest po prostu zalany śmieciami i kurzem i musi zostać wyczyszczony.
źródło
Miałem ten sam problem w Yosemite, ale dzięki tej dobrej duszy opartej na innym dobrym człowieku mogłem go rozwiązać. Nadal nie rozumiem, co się stało, ale po tym, jak straciłem cały weekend, próbując to rozgryźć, po prostu poddałem się i ślepo stosowałem się do jego instrukcji. Spójrz na moją desperację w monitorze aktywności:
Bądź ostrożny, zawsze najpierw wykonaj kopię zapasową i przeczytaj podane linki, aby uzyskać wyjaśnienie. Przyjmuję zerową odpowiedzialność za wszelkie spowodowane szkody. Zostałeś ostrzeżony.
źródło
Korzystam z systemu OSX Lion z nowym komputerem MacBook Pro z 2011 r., A ostatnio kernel_task działa około 25-30% procesora, a mój wentylator wiruje maksymalnie przez wiele godzin. Próbowałem jednej rzeczy na raz i to, co rozwiązało, to ... zamykanie 5 lub 6 okien w aplikacji Finder. Nie mogę powiedzieć, że rozumiem dlaczego, ale to było jasne.
źródło
Na moim komputerze Mac użycie procesora przez kernel_task jest proporcjonalne do przepustowości łącza internetowego, którego używam, od około 0% do 50%. Prawdopodobnie jest to spowodowane sterownikami mojego modemu Huawei 3G (HuaweiDataCardDriver.kext).
Możesz spróbować wyłączyć rozszerzenia jądra. Nie ma potrzeby używania kextunload: po prostu przenieś pakiety kext z / System / Library / Extensions / do innego folderu i uruchom ponownie. Możesz użyć Canary Konsultanta lub
kextstat | grep -v com.apple
wyświetlić listę rozszerzeń jądra, które nie były dostarczane z OS X.źródło
Aby rozwiązać konkretne problemy z jądrem poza kontrolą , oto kilka przydatnych poleceń:
Profiluj cały system, koncentrując się na procesie jądra (PID: 0), uruchom:
W przypadku konkretnego procesu (np.
launchd
) Użyjsample
, np.sudo sample launchd
Lub według PID.Aby zebrać zużycie pamięci według zadania jądra, użyj (domyślnie posortowane według typu brudne):
Uwaga: Służy
-a
do kierowania wszystkimi procesami.Aby zebrać całego systemu informacji diagnostycznych z wielu utils, uruchom:
sudo sysdiagnose
.Można to również uruchomić, naciskając Shift- Control- ⌥- ⌘-. (kropka).
Powinieneś zobaczyć ekran migający po uruchomieniu, a następnie poczekaj kilka minut, aż plik zostanie ujawniony w Finderze .
Zobacz: Jak uzyskać pliki diagnostyczne systemu z OS X?
Następnie dekompresji i sprawdzić pliki, takie jak
footprint*.txt
,spindump.txt
,taskinfo.txt
,bc_stats.txt
i inne.Sprawdź
vm.swapusage
stany jądra, npsysctl -a | grep ^vm.swapusage
.Zasadniczo, więcej używasz swapów (sprawdź pliki wymiany,
/private/var/vm
którymi zarządzadynamic_pager
, patrz :)man dynamic_pager
, tym więcej jądra zmaga się z wydajnością z powodu operacji Swapins / Swapouts (patrzman vm_stat
iman fs_usage
). Aby przetestować, uruchom:Uwaga: Hit Control- Caby zatrzymać.
źródło
Dla mnie miałem jeden proces (w tym przypadku Netbeans, który odczytywał plik taki jak 20 GB) i użyłby 80% procesora dla netbeans, 20% procesora dla kernel_task (bardzo podejrzane). To spowodowało, że cały mój system działał jak tar.
Podejrzane jest również to, że „menumetery” zgłaszałyby dużo czasu „sys” na jednostkę centralną. Możesz to również zobaczyć w poleceniu „top”, np
CPU usage: 21.40% user, 23.74% sys
Później może to być netbeans 120% procesora, kernel_task 65%, ale w każdym razie oba były „wysokimi procesorami w tym samym czasie”
sudo fs_usage
pokazał wiele tego:Moja teoria jest taka, że netbeans „czytał tak dużo”, że powodował, że błędy stron nawet uruchamiały swój własny program (tj. Wysyłały do zamiany własnego programu), więc otrzymywały kolejkę za systemem błędów stron. I prawdopodobnie wymiana „innych programów” również na zamianę, co powoduje, że cały system się zwalnia.
Używając
top
, kolumna FAULT również wzrastała o 70K / s.źródło
Mój Macbook Pro był prawie bezużyteczny ze względu na wysoki procesor kernel_task przez wiele tygodni W tym samym czasie bateria się napompowała, więc ostatecznie zdecydowałem się na Apple Center w Rzymie, aby go wymienić ... nawet jeśli poza gwarancją Apple wymieniło moją baterię (i klawiatura również) za 0 €. Jeszcze lepiej ... problem z jądrem nagle znika !!! więc jestem całkiem pewien, że to z powodu baterii, bezpośrednio lub pośrednio
źródło