Problem, który mam, dotyczy serwera (i innych urządzeń OSX), mamy 4 GB pamięci RAM, ale odkrywamy, że OSX zużywa tylko 40–60% dostępnej pamięci RAM, a jednocześnie ma wymianę 6-7 GB. Na serwerze działają Apache i MySQL, podczas gdy pozostałe komputery to komputery stacjonarne.
Porównałem jego użycie z podobnymi urządzeniami Linux (sprzęt i oprogramowanie) i stwierdziłem, że Linux zwykle używa 80-90% pamięci RAM i ma znacznie mniejszy plik wymiany (2-3 GB). Serwery Linux również zwykle działają znacznie szybciej.
Czy istnieje sposób, aby zmusić OSX do użycia większej lub większości pamięci RAM przed użyciem pliku wymiany dysku?
W systemie Windows można całkowicie wyłączyć wymianę. Czy jest coś podobnego dla OSX?
mac-osx
mac-osx-server
Darryl Hein
źródło
źródło
du -sh /var/vm
- powiedział, że może być sztucznie wysoki, jeśli występuje obraz snu (najczęściej widziany na laptopach). Dostępnych jest kilka narzędzi, które mogą pomóc określić, czy to pamięć powoduje spowolnienie:vm_stat
- szczególnie interesuje Cię wartość stronicowania - jeśli wzrośnie nieco, to wiesz, że mocno zamieniasz. Aby uzyskać więcej informacji na temat zarządzania pamięcią przez Apple: developer.apple.com/documentation/Performance/Conceptual/...Odpowiedzi:
Najbardziej podstawowa odpowiedź? Nie. System operacyjny obsługuje zarządzanie pamięcią dla użytkownika - zapewnia procesowi tyle pamięci, ile wymaga, i wymaga tego, i nie zapewnia wiele, jeśli chodzi o możliwość modyfikowania działania systemu. Nie pomaga wiele w ustaleniu, czy wykorzystanie pamięci jest częścią równania, dlaczego serwery Linux przewyższają serwery Mac.
Ze względu na brak „możliwości hakowania” w systemie pamięci wirtualnej najlepszym rozwiązaniem jest ocena wydajności pamięci wirtualnej, aby sprawdzić, czy to naprawdę powód, dla którego występują problemy z wydajnością - najbardziej podstawowe jest użycie
vm_stat
lub użycie śledzenia na żywo za pomocą,vm_stat [number of seconds]
aby zobaczyć, ile stron ma miejsce. Przeniesienie nieużywanych stron z pamięci RAM na dysk twardy ma znacznie niższy koszt niż odzyskanie stron z dysku twardego do pamięci RAM. Strona w terminologii OS X odnosi się do 4kb danych.Ponadto procesy 32-bitowe (np. Illustrator) nie mogą uzyskać dostępu do więcej niż 4 GB, więc teoretycznie możliwe jest posiadanie 2 GB wolnego miejsca i procesowi zabraknie pamięci, jeśli zainstalowano 6 GB.
Zarówno na twoim pulpicie, jak i na serwerach, uruchomiłbym
vm_stat 2
i sprawdził ostatnią kolumnę - szczególnie, gdy doświadczasz wielosekundowego opóźnienia podczas przełączania na program Illustrator.Aby dowiedzieć się, jak duża jest zamiana, możesz sprawdzić rozmiar zamiany w monitorze aktywności lub uruchomić
du -shc /var/vm/swap* | tail -n 1
.Korzystanie
du -sh /var/vm
ma jedno zastrzeżenie: na laptopach, które mają tryb hibernacji (cokolwiek z ostatnich 4 lat lub nowszych), może byćsleepimage
mniej więcej rozmiar zainstalowanej pamięci.Żargon pamięci Mac OS X:
Przewodowy : Odnosi się do kodu jądra i tym podobnych. Pamięć, której nigdy nie należy przenosić z pamięci RAM. Znany również jako pamięć rezydentna.
Shared : Pamięć współdzielona przez dwa lub więcej procesów. Oba procesy pokazałyby taką ilość pamięci, więc może być nieco mylące, ile pamięci faktycznie jest w użyciu.
Rzeczywiste : jest to „rzeczywiste” użycie pamięci przez aplikację, zgłaszane przez task_info () - przybliżona liczba fizycznych stron, które ma bieżący proces. (RSIZE)
Prywatne : jest to pamięć, z której proces korzysta wyłącznie samodzielnie, w pamięci rezydentnej. (RPRVT)
Wirtualny : Całkowita ilość przestrzeni adresowej w procesie, która jest odwzorowana na cokolwiek - niezależnie od tego, czy jest to dowolnie duża przestrzeń na zmienne, czy cokolwiek innego - nie jest równa faktycznemu użyciu maszyny wirtualnej. (VSIZE)
Aktywna : pamięć jest obecnie oznaczona jako aktywna i używana jest pamięć RAM.
Nieaktywna : „Nieaktywna pamięć nie jest już używana i została zbuforowana na dysk. Pozostanie w pamięci RAM, dopóki inna aplikacja nie zajmie miejsca. Pozostawienie tych informacji w pamięci RAM jest korzystne, jeśli wrócisz (lub klient komputera) do tego później ”. - Pomoc Mac OS X.
Bezpłatnie : ilość pamięci RAM faktycznie dostępnej bez żadnych danych.
Najlepszą dokumentacją, jaką znam (i którą mogłem znaleźć w dalszych badaniach), jest własny artykuł Apple dotyczący zarządzania pamięcią na ich stronie internetowej dla programistów.
Inne wartościowe źródła: lista dyskusyjna Darwin-dev: [ 1 ], [ 2 ] oraz stary artykuł na temat MacOSXHints . Dodatkowo Mike Ash opublikował dobre wprowadzenie dla laika na swoim blogu
Może być możliwe (nie wypróbowałem tego) wyłączenie systemu pamięci wirtualnej poprzez uruchomienie,
sudo launchctl unload /System/Library/LaunchDaemons/com.apple.dynamic_pager.plist
a następnie ponowne uruchomienie, aby dynamiczny pager (program, który faktycznie dokonuje alokacji pamięci wirtualnej) nie uruchomił się. Ponieważ jednak system operacyjny zakłada, że ma pamięć wirtualną, możesz bardzo szybko napotkać problemy. Aby załadować kopię zapasową, uruchomsudo launchctl load /System/Library/LaunchDaemons/com.apple.dynamic_pager.plist
(w razie potrzeby z trybu pojedynczego użytkownika)źródło