Po całym dniu pracy na moim MacBooku Pro z systemem Mac OS X 10.6.5, Monitor aktywności pokazuje, że większość 8 GB pamięci mojego komputera jest „Nieaktywna”, a tylko niewielki fragment wykresu kołowego jest „Wolny”. Dzieje się tak nawet wtedy, gdy zamknąłem wszystkie aplikacje, z uruchomioną tylko Finderem.
Co to znaczy? Czy pamięć „nieaktywna” jest przez coś przejmowana? Czy może jest nadal dostępny dla aplikacji? Dzięki.
Odpowiedzi:
OS X, podobnie jak większość nowoczesnych systemów operacyjnych, wykorzystuje system pamięci wirtualnej do zarządzania pamięcią. Między innymi pozwala to systemowi operacyjnemu traktować komputer jako posiadający nieograniczoną pulę pamięci. Aby to osiągnąć, system operacyjny wysyła nieużywane części pamięci RAM do magazynu dysków zwanego plikiem wymiany .
Oczywiście pamięć RAM nie jest nieograniczona, więc OS X grupuje pamięć RAM na cztery kategorie: przewodowa, aktywna, nieaktywna i bezpłatna. Pamięć przewodowa jest wymagana przez system operacyjny i nigdy nie może być stronicowana z pamięci. Pamięć aktywna to pamięć używana przez aktualnie uruchomione programy. Nieaktywna pamięć była ostatnio używana przez programy, które zostały zakończone (lub nie były nieużywane przez długi czas). Wolna pamięć to, jak sama nazwa wskazuje, pamięć RAM, która nie jest używana.
Po uruchomieniu program jest ładowany do aktywnej pamięci. Jednak po wyjściu z programu nie jest on usuwany z pamięci RAM; raczej wpada w nieaktywną pamięć. Dlatego często ponowne uruchomienie programu jest szybsze - wciąż jest w pamięci RAM (spróbuj tego z dużym programem, takim jak Firefox).
Po wykorzystaniu całej pamięci (wolna pamięć wynosi 0), system operacyjny wypisze nieaktywną pamięć do pliku wymiany, aby zrobić więcej miejsca w aktywnej pamięci.
Jeśli program zostanie przeniesiony na plik wymiany i ponownie go uruchomisz, zostanie on wyciągnięty z pliku wymiany do aktywnej pamięci.
Krótko mówiąc, tak naprawdę nie powinieneś się przejmować, czy wolna pamięć jest za mała. W rzeczywistości chcesz, aby była niska - wolna pamięć jest marnowaną pamięcią (ponieważ system operacyjny nie używa jej do niczego).
Podczas sprawdzania ilości pamięci używanej przez komputer, naprawdę chcesz zwrócić uwagę głównie na wykorzystaną funkcję wymiany , która określa rozmiar pliku wymiany pamięci wirtualnej, oraz informacje na temat stron , które informują, jak często system operacyjny musi pobierać pamięć z pliku wymiany w aktywną pamięć.
źródło
Najprawdopodobniej nie stanowi to problemu, a w rzeczywistości może przyspieszyć działanie komputera.
Wszystkie (większość?) Systemy operacyjne wykorzystują pamięć podręczną dysku, która przechowuje niektóre ostatnio otwierane pliki w pamięci, aby można było przyspieszyć powtarzalny dostęp do tych plików. Pamięć podręczna dysku w systemie OS X ma zmienny rozmiar i będzie wyświetlana jako „Nieaktywna pamięć”.
Jeśli jakikolwiek program potrzebuje więcej pamięci, OS X wyczyści pamięć podręczną dysku (pliki ostatnio używane), aby zwolnić miejsce na uruchomienie / rozszerzenie programu.
Uważam, że jeśli wykonam dużo kompilacji lub sortowania zdjęć (tj. Uzyskuję dostęp do tysięcy plików po kolei), pamięć podręczna dysku powiększy się i zużyje dużo nieaktywnej pamięci. Pod warunkiem, że to właśnie ta pamięć podręczna dysku, nie ma się czym martwić.
Jeśli jest to proces działający w tle lub aplikacja, która zwiększa wykorzystanie pamięci (ale jej strony są oznaczane jako nieaktywne), będziesz mógł to stwierdzić, sprawdzając programy o bardzo wysokim zużyciu „pamięci rzeczywistej” w monitorze aktywności. Jeśli nie ma tam nic wyraźnie dużego (tj. Suma jest znacznie mniejsza niż 8 GB), to będzie pamięć podręczna plików.
Powinieneś zobaczyć, że użycie zamiany jest niewielkie, a jeśli otworzysz program intensywnie korzystający z pamięci, ilość nieaktywnej pamięci zmniejszy się bez konieczności zamiany na dysk.
(Wydaje mi się, że w 10.4 lub 10.5 był błąd, przez który nie zawsze bardzo skutecznie zwalniał tę pamięć i powodowałby zamianę pomimo posiadania dużej pamięci podręcznej dysku, ale z mojego doświadczenia wynika, że jest to rozwiązane w 10.6).
źródło
Pamięć „nieaktywna” jest dostępna do użytku przez inne programy - to tylko buforowanie programów lub danych, których ostatnio używałeś, na wypadek, gdyby były potrzebne ponownie. Jeśli uruchomisz różne programy lub potrzebujesz różnych danych, pamięć podręczna zostanie wyczyszczona i udostępniona w razie potrzeby dla nowego obciążenia.
W każdym razie taka jest teoria i uważam, że to jest solidne. Jednak znalazłem to odniesienie do narzędzia „wyczyść”, które ktoś napisał, ponieważ nie sądził, że nieaktywna pamięć jest uwalniana wystarczająco szybko.
Aby uzyskać oficjalną dokumentację na ten temat, przeczytaj to (i wyszukaj „nieaktywne”).
źródło
Począwszy od systemu OS X 10.5 występują oczywiste problemy z zarządzaniem pamięcią w systemie MAC OS X.
W końcu udało mi się odtworzyć problematyczny scenariusz, więc uruchomiłem test i nagrałem ekran na wideo.
Problem z wydajnością MAC OS X Lion - zepsute zarządzanie pamięcią
Uruchamiam komendę tar + bzip, która jest podstawową rzeczą uniksową, na dużej liczbie plików obrazów w moim folderze Pictures /. Tuż przed uruchomieniem uruchamiam polecenie „purge”, aby usunąć nieaktywne / buforowane dane programu.
Na filmie widać, że wolna pamięć zaczyna spadać bardzo szybko, a nieaktywność stale rośnie. Jeśli spojrzysz na polecenie „bsdtar”, zajmuje to tylko fragment pamięci RAM, więc problem nie występuje w tym procesie. Nie można powiedzieć, że jest to wyciek pamięci programu, ponieważ wtedy problemem nie byłby nieaktywny RAM, a raczej aktywny / przewodowy.
Gdy wolna pamięć spadła poniżej 100 MB, uruchomiłem niektóre aplikacje, takie jak Safari, iPhoto i MS Word, i widać na filmie, że uruchomienie aplikacji zajmuje nawet minuty, gdy normalnie (gdy jest wolna pamięć RAM), to ładowanie zajmie około 3-5 sekund.
W moim Linux Centos 6 uruchamiam ten sam scenariusz i te same polecenia, nie ma problemu! Zużycie pamięci wynosi około 10-20 MB, bez problemów z pamięcią podręczną / buforem.
Zarządzanie pamięcią musi być bardzo zepsute w Mac OS X!
źródło
Ta dyskusja ma sens tylko wtedy, gdy stwierdzenie, że „komputer będzie działał szybciej, gdy ilość wolnej pamięci będzie niska” - była prawdziwa. O ile mój komputer stacjonarny Mac nie jest dziwnie okablowany, w chwili, gdy moja wolna pamięć (monitorowana) zacznie się wyczerpywać, dowolny program, który uruchomię w tym czasie, zaczyna spadać do punktu, w którym nie mogę nic zrobić, dopóki sam się nie wróci lub przez moją interwencję Wolnej Pamięci. Mam iMaca 2118 (2006 lub nowszy), który ma maksymalnie 3 GB pamięci RAM, więc staram się nim zarządzać, kiedy tylko mogę, ale jest to bardzo frustrujące. jakieś pomysły?
źródło