Korzystałem z mojego MBP (z 16 GB pamięci RAM) jak zwykle i nieoczekiwanie mam to okienko pop-up, które:
W systemie zabrakło pamięci aplikacji.
Aby uniknąć problemów z komputerem, zamknij wszystkie nieużywane aplikacje.
Oczywiście zamknąłem kilka, które mogłem, ale to nie pomogło.
Po sprawdzeniu pamięci wydaje się, że zadanie jądra zjadło 7 GB, a pamięć wymiany 22,36 GB została wykorzystana z 23 GB (co oczywiście miało miejsce). Jednak wciąż mam 20 GB wolnego miejsca na moim SDD.
Monitor aktywności niewiele pomógł, gdy mój OS X zmierzał do zniszczenia.
Moje top
statystyki przed zamrożeniem jądra:
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.
Na koniec mój OS X został zamrożony i musiałem wykonać twardy reset, naprawić SDD w trybie odzyskiwania, a następnie naprawić (odzyskiwanie utraconej pracy, naprawianie konfliktów aplikacji, sprawdzanie folderu utracone + znalezione, brak kart Chrome / Terminal, ból głowy itp. ).
Moje pytanie brzmi: jak sprawdzić zużycie pamięci przez zadanie jądra lub jak właściwie poradzić sobie z tego rodzaju sytuacją? Próbowałem pobrać próbkę z monitorem aktywności, ale jest wyszarzona.
Moje dane MBR: 2,3 GHz Intel Core i7 (koniec 2013 r.) Z 16 GB pamięci RAM. OS X: 10.9.5
zprint -t
(Lion) lubsudo zprint -t
(Mountain Lion i później).Odpowiedzi:
Istnieje wiele błędów, które mogą się nie powieść w przypadku użycia dużego zadania jądra. Zwykle jest to związane z wadliwym lub ciężkim procesem, który nadmiernie wykorzystuje zasoby systemowe (takie jak indeksowanie pamięci, uruchamianie maszyn wirtualnych, zbyt wiele kart w przeglądarce internetowej lub niektóre inne procesy w tle).
Oto kilka metod, które pomagają zbadać problemy z użyciem jądra OS X:
Podstawowe metody
Console.app
i zaznacz „ Wszystkie wiadomości ”, aby zobaczyć, czy dzieje się coś niezwykłego.Użyj Monitora aktywności, aby odczytać pamięć systemową i ustalić, ile procesora, pamięci RAM i dysku jest używane.
Alternatywnie uruchom
top
w terminalu i przytrzymaj, Spaceaby odświeżyć - łatwiej znaleźć przyczynę problemu ( zamiany / zamiany / dyski ?).Uruchom
sudo fs_usage
w Terminalu, aby zgłaszać w czasie rzeczywistym wywołania systemowe i błędy strony związane z aktywnością systemu plików (myślę, że jest to najlepsza opcja spośród wszystkich innych). Następnie naciśnij Control- Caby go zatrzymać.Działanie: Zastanów się nad zabijaniem aplikacji, które często pojawiają się na liście, ale ich nie używasz.
Dowiedz się więcej na: Jak debugować niekontrolowany proces „kernel_task”?
Uruchom
sudo syscallbypid.d
(lubsyscallbyproc.d
), poczekaj chwilę, naciśnij Control- C. Teraz sprawdź, który proces wygenerował najwięcej wywołań systemowych w danym czasie (ostatnia kolumna), a jeśli go rozpoznasz, rozważ zabicie go. Jeśli nie, prześlij go Google i dowiedz się więcej.Metody zaawansowane
Użyj
sysdiagnose
polecenia (można je uruchomić, naciskając Shift- Control- ⌥- ⌘- .(kropka), aby szybko zebrać ogólnosystemowe informacje diagnostyczne pomocne w badaniu problemów z pamięcią systemową / wydajnością (pojawią się/var/tmp
) albo przez ciebie, albo przez chłopaków Apple. Podczas analizy staraj się nie robić cokolwiek, po zakończeniu - rozważ rozpakowanie wygenerowanego pliku i przeanalizuj dzienniki.Zobacz: Jak uzyskać pliki diagnostyczne systemu z OS X?
Uruchom,
footprint
aby zebrać szczegółowe informacje o pamięci na poziomie typu dla poszczególnych maszyn wirtualnych i zamienionych bajtów:Starsza wersja:
Służy
spindump
do profilowania całego systemu, wygeneruje/tmp/spindump.txt
plik (w tym jądro i jego rozszerzenia).Służy
vm_stat
do wyświetlania statystyk pamięci wirtualnej. Na przykładSłuży
zprint
do sprawdzania informacji o użyciu jądra, jest to możliwe poprzez:Wyświetli najbardziej marnujące strefy jądra.
Służy
newproc.d
do węszenia nowych procesów podczas ich wykonywania,creatbyproc.d
dla plików:Uwaga: W nowszym systemie OS X (10.11 lub nowszym) może to nie działać, gdy ochrona integralności jest włączona (sprawdzane przez
csrutil status
).Try
sar
- raport aktywności systemu, który może próbkować i raportować różne skumulowane liczniki statystyk obsługiwane przez system operacyjny.Aby uzyskać bardziej przydatne narzędzia do debugowania, sprawdź skrypty dtrace (
grep dtrace /usr/bin/*
). Jeśli znasz wadliwy proces powodujący problem, możesz go użyćdtruss
do debugowania.działania
Oto kilka sugestii, które mogą pomóc w problemach z systemem operacyjnym.
Zwolnij trochę nieaktywnej pamięci. Aby to zrobić, musisz najpierw opróżnić pamięć podręczną i wymusić usunięcie pamięci podręcznej dysku:
Jego funkcją jest w zasadzie zakończenie wszystkich oczekujących operacji we / wy, które wykorzystują pamięć podręczną dysku, a następnie zwolnienie całej zajętej pamięci podręcznej dysku, więc powinno zwolnić miejsce na dysku, aby ułatwić stronicowanie i zamianę pamięci głównej. Jest bezpieczny w użyciu, ponieważ nie wpływa na anonimową pamięć przydzieloną przez malloc, vm_allocate itp.
Użyj niektórych aplikacji innych firm, aby usunąć nadmiar pamięci, takich jak iBoostUp , SystemPal itp.
Możesz także wyłączyć tymczasowe Spotlight:
I rozważ inne usługi:
Zamknij przeglądarkę internetową i sprawdź, czy to pomoże. Na przykład korzystanie z Chrome jest bardzo pomysłowe, szczególnie gdy w tle odbywa się przetwarzanie frontonu (np. JavaScript) lub animacje podobne do reklam stale wyświetlają treść.
źródło
kernel_task
zużycia pamięci i procesora.Miałem bardzo podobny problem po wymianie ekranu LCD na komputerze iMac pod koniec 2012 roku. Wentylator działał przy wysokich obrotach i miał wysokie użycie procesora przez jądro. Zawęziłem go do czujnika temperatury, który musisz przenieść ze starego ekranu LCD na nowy ekran zastępczy. jeśli zapomnisz to zrobić, wpłynie to na szybkość procesora i zadanie Kernel_task spowalniając twój system.
źródło