Nieaktywna pamięć otrzymała okropny rap z powodu gównianego imienia. Powinno to się nazywać coś w rodzaju „spraw, by Twój Mac był naprawdę szybki za drugim, trzecim i czwartym razem, gdy wykonuje to samo zadanie”, z wyjątkiem tej okropnej nazwy.
Firma Apple ponownie napisała monitor aktywności, gdy wprowadziła kilka nowych funkcji i dodała pamięć skompresowaną, więc niektóre z nich nie dotyczą już systemu macOS, który nie wyświetla „Nieaktywnej pamięci”, ale nadal dotyczy zarządzania pamięcią Mac OS X, jak zostało to udokumentowane wersja Monitora aktywności: https://support.apple.com/en-us/HT201538
Oto jak wytłumaczyłem coś komuś nowemu w koncepcji pamięci wirtualnej w OS X:
- Przewodowy : system nie może działać bez takiej ilości pamięci RAM (nigdy nie zamienianej)
- Aktywne: programy naprawdę używają tej pamięci teraz lub w ciągu ostatnich kilku sekund
- Nieaktywne: rzeczy, które programy odczytały z wolnego dysku lub z innego miejsca i powiedziały, że nigdy więcej nie będą potrzebne. Inżynierowie wiedzą lepiej, wrócisz do Facebooka za kilka minut lub uruchom ponownie program Word po jego zamknięciu. Te same rzeczy zdarzają się wielokrotnie na komputerach.
- Bezpłatnie: całkowicie zmarnowana pamięć RAM - system potrzebuje tylko jednego lub dwóch MB wolnego miejsca, aby pokryć wnioski o przydział krótkoterminowy. W przypadku największych przydziałów po prostu wykorzystuje część Nieaktywnej pamięci RAM, przydzielając ją do aktywnej / przewodowej i usuwając informacje o tym, co trzymała.
Problem pojawia się, gdy Free + Inactive jest mniej niż w przybliżeniu 1/3 całości, a wtedy rzeczy mogą naprawdę zwolnić.
Nieaktywna pamięć to dodatkowa prędkość / podwójna pamięć RAM. W jednej chwili jest za darmo, ale także sprawia, że powtarzane zadania są znacznie, dużo szybsze, jeśli system poprawnie zgadł i zachował coś w pamięci RAM, co zrobisz ponownie. Jest szybszy niż zamieniona pamięć, ponieważ jest już załadowany do pamięci RAM i przyspiesza, gdy system pamięci wirtualnej zgaduje.
Gdy zastanawiasz się, czy nie jest problem z pamięcią RAM, zamiast patrzeć na każdą z 4 kategorii (5 jeśli liczyć aktywną zamianę), możesz połączyć W + A jako spowolnienie nowego programu / zadania i F + I jako przyspieszenie nowy program / zadanie. Im więcej masz F + I, tym więcej nowych programów możesz uruchomić, zanim pamięć RAM będzie musiała polegać na zamianie, aby żonglować przydzieloną pamięcią.
Naprawdę nie musisz wiedzieć, jak działa swap, ponieważ wspomniałem o tym powyżej. Zasadniczo, gdy program jest bezczynny i nie był używany przez kilka dni (lub godzin), system zapisze tę pamięć RAM na dysku twardym, zamiast go zabić. To pozwala systemowi tasować i obsługiwać różne rzeczy związane z zarządzaniem pamięcią i powstrzymuje każdy program przed rozmową między sobą w celu ustalenia, kto zużyje mniej pamięci, gdy system się skończy.
Oto rzeczywisty przykład użycia nieaktywnej pamięci RAM.
- Zamknij wszystkie aplikacje i upewnij się, że dwie testowane przez nas aplikacje nie są ustawione na automatyczne uruchamianie po zalogowaniu
- Uruchom ponownie komputer Mac
- Uruchom monitor aktywności i obserwuj pamięć RAM przez cały czas
- Czas potrzebny do uruchomienia aplikacji A (MS Word byłby dobrym wyborem)
- Zamknij A
- Czas, jak długo zajmuje uruchomienie aplikacji B (Adobe coś by też było dobre)
- Wyjdź B
- Czas, jaki zajmuje drugie uruchomienie A
- Zamknij A
- Drugie uruchomienie czasu B.
- Czas A zaczyna się trzeci raz z uruchomionym B.
Powinieneś zobaczyć dramatyczne przyspieszenie drugiego / trzeciego uruchomienia, gdy system uczy się utrzymywać w nieaktywnej pamięci RAM rzeczy, które muszą uruchomić te dwie aplikacje.
W twoim przypadku - całkowita liczba połączeń przewodowych i aktywnych oznacza, że prawdopodobnie nastąpi zamiana na dysk, a komputer Mac nie jest tak szybki, jak to możliwe, ponieważ nieaktywna pamięć RAM nie jest wystarczająco duża, aby pomieścić wszystkie rzeczy, które mogą być potrzebne do ponownego użycia . Jeśli masz szybki dysk SSD, ten przydział pamięci RAM jest OK i zamiast zaczynać zwalniać, gdy mniej niż 1/2 pamięci RAM to F + I, możesz wyciąć rzeczy bliżej do około 1/4 całkowitej pamięci RAM dla F + I zanim zobaczyłem zauważalną powolność. Te wytyczne są ogólne i będziesz musiał oglądać vm_stat 15
lub podobny okres, aby upewnić się, że ciągłe i średnie zamiany głośności nie powodują spowolnienia komputera Mac.
Liczba, która jest najważniejsza przy określaniu, czy komputer Mac jest „obciążony” pamięcią, to liczba „stronicowania”. W Monitorze aktywności w Mavericks nie jest to już pokazywane, teraz pokazują informacje w „Zamień używane:”.
Page out oznacza, że system operacyjny stwierdził, że nie ma wystarczającej ilości dostępnej pamięci RAM, aby uruchomić wszystkie żądane aplikacje i procesy. To, co wtedy robi, to „przechodzenie” do części dysku, które według niego nie są aktywnie wykorzystywane. Oznacza to, że pamięć RAM (szybka) zamienia się na pamięć HDD (wolna). Jeśli dzieje się tak często, ponieważ działa wiele aplikacji, a użytkownik przełącza się między aplikacjami, będzie dużo stron i stron.
Jeśli zauważysz wzrost liczby stron, powinieneś podjąć działania.
źródło
Problem na moim komputerze Mac polega na tym, że „nieaktywna” pamięć nigdy nie jest usuwana, chyba że wykonam ręczne czyszczenie w oknie poleceń. Narasta i narasta, dopóki nie pojawi się wyskakujące okienko z informacją, że mam zabić aplikacje. Nawet po zabiciu wszystkich aplikacji wciąż mam zbyt dużo nieaktywnej pamięci, aby cokolwiek uruchomić. Tak więc na moim komputerze Mac z najnowszą wersją Mountain Lion NIE jest prawdą, że nieaktywna pamięć zostanie odzyskana, gdy ilość wolnej pamięci się wyczerpie. Albo mam gdzieś aplikację, która zablokowała część nieaktywnej pamięci, która nigdy się nie uwalnia, albo iOS ma błąd. (Mam 8 GB pamięci fizycznej ... to powinno wystarczyć!)
źródło
vm_stat
kiedy to się dzieje? Co sprawia, że jesteś tak pewien, że może być „za dużo„ nieaktywnej pamięci ”, aby cokolwiek uruchomić? O ile mi wiadomo, to wszystko, co wiesz, nie ma żadnego kodu w znanym kodzie, faktycznie działa w jądrze.Dzięki wszystkim posterom i komentatorom był to pouczający i przydatny wątek. Moje ostatnie doświadczenia mogą być dla kogoś przydatne. Używam mojego Maca Mini z systemem OS X10.8.1 i 16G RAM całkowicie do tworzenia oprogramowania do prototypowania, które będzie działać w innym miejscu. Zapewniam cię, że nie „wrócę do Facebooka za kilka minut ani nie uruchomię ponownie programu Word po zamknięciu” - zamiast tego robię to na moim Macbooku.
Moim zadaniem było wykasowanie dużej grupy danych, operacje we / wy są czasochłonne, więc chodzi o to, aby odczytać tak dużą porcję danych, aby wcisnąć jak najwięcej za jednym zamachem, przetworzyć ją tam, a następnie zapisać z powrotem na dysk , a następnie powtarzaj proces aż do zakończenia, co zajmuje kilka godzin. Widzę, że za każdym razem, gdy czytam nowy fragment danych, nieaktywna pamięć przeskakuje - przypuszczam, że AI systemu zakłada, że mógłbym chcieć ponownie użyć starego fragmentu, czego nie robię - i za darmo pamięć spada.
Po kilku iteracjach tego procesu ilość wolnej pamięci spada do zaledwie kilku MB, pamięć nieaktywna zwolni jeszcze kilka MB, a następnie, po kilku minutach sprzeczki między wolną i nieaktywną pamięcią, pamięć nieaktywna zostanie zwolniona nawet kilka GB na raz. Wszystko jest jak opisuje @bmike, a zarówno vm_stat 15, jak i Monitor aktywności pokazują 0 stronicowania.
Z wyjątkiem może nie do końca. Kilka razy wszystko płynęło płynnie, idę na kawę lub obiad i nie monitoruję procesu, a to, co nie powinno się zdarzyć, dzieje się, a proces nagle zrzuca mnóstwo stronicowania i zwalnia. Zastanów się, że przyczyną problemu jest prawdopodobnie mój kiepski kod, ale chciałbym wyłączyć nieaktywną pamięć, aby wyeliminować to źródło zmienności. Czy to jest zepsute? W ogóle nie powiedziałbym tego, ale powiedziałbym, że myślę, że zarządzanie pamięcią nie jest zoptymalizowane dla mojego przypadku użycia.
źródło
Ta funkcja jest fajna, gdy masz dużo pamięci RAM, ale gdy nie jest to dość denerwujące. W rzeczywistości chodzi o jabłka. Gdy masz potężny gadżet lub komputer Mac, wszystko jest fajne, ale gdy urządzenie się zestarzeje, wszystkie funkcje go spowalniają.
Więc musisz użyć specjalnych sztuczek, aby nim zarządzać.
W przypadku nieaktywnej pamięci istnieje polecenie
purge
jej zwolnienia.źródło
Zasadniczo jest zepsuty. Nieaktywna pamięć RAM powinna zostać automatycznie „wyczyszczona”, gdy ilość wolnej pamięci RAM jest niska. Po co trzymać pamięć RAM dla wcześniej otwartych aplikacji, mając nadzieję, że użytkownik ją otworzy ponownie? Niski poziom wolnej pamięci RAM wskazuje, że istniejące aplikacje AKTYWNE mogą nie mieć wystarczającej ilości pamięci RAM i zmienia się TERAZ. Utrzymywanie GB pamięci RAM dla zamkniętych aplikacji jest po prostu głupie. Zgodnie z własnym opisem Apple'a nieaktywna pamięć RAM powinna zostać automatycznie wyczyszczona lub pożyczona, gdy ilość wolnej pamięci RAM jest niska. Oczywiście tak nie jest.
źródło
vm_stat
za „nigdy więcej wolnej pamięci RAM”? Kiedy komputer Mac jest „wolny”, na co liczy się wejście i wyjście stronyvm_stat 1
? Za każdym razem, gdy oglądam to w systemie problemowym, lubię miećvm_stat 15
działające w oknie terminala (lub logować się do systemu plików), dzięki czemu mogę dokładnie wiedzieć, co to jest aktywność stronicowania przy podejmowaniu decyzji, czy / kiedy dostroję takie rzeczy jak pager. Ten przykład ma 100 MB wolnej pamięci RAM, więc nie jest prawdopodobne nawet pod presją stronicowania.Zasadniczo nieaktywna pamięć przyspiesza otwieranie wcześniej zamkniętych procesów. Jeśli stwierdzisz, że Mac OS zajmuje zbyt dużo pamięci, tak naprawdę nie potrzebujesz tak jak z dziesiątek kart otwartych w Safari lub Chrome, po prostu użyj polecenia „wyczyść” w Terminalu. W OS X Mavericks wystarczy użyć „sudo purge” (musisz podać hasło). Goli cenne sekundy, kiedy trzeba coś ponownie otworzyć, ale jeśli chcesz zagrać w grę wymagającą dużej ilości pamięci RAM lub otworzyć aplikację wymagającą dużej ilości pamięci RAM, zdecydowanie sugeruję użycie polecenia czyszczenia.
źródło