Natknąłem się na wątek dotyczący instalowania dysku SSD w MacBooku Pro.
Ktoś w komentarzach zalecił również wyłączenie pliku wymiany, ale nie powiedział dlaczego:
sudo launchctl unload -w /System/Library/LaunchDaemons/com.apple.dynamic_pager.plist
sudo rm /private/var/vm/swapfile*
Zastanawiam się, dlaczego ktoś chciałby wyłączyć plik wymiany w Mac OS X.
Czy to zwiększa wydajność? Stabilność?
Jakieś wady?
Wreszcie, czy ma sens wyłączanie pliku wymiany, gdy nie za pomocą SSD?
Odpowiedzi:
Przypuszczam, że ludzie zrobiliby to dla dysku SSD, ponieważ te dyski nie mają takiej samej żywotności jak standardowe magnetyczne napędy dyskowe. Istnieje bardziej ograniczona liczba cykli zapisu, więc prawdopodobnie użycie ich z plikiem wymiany spowoduje szybsze wykorzystanie tych cykli.
Jeśli masz dużo pamięci RAM, prawdopodobnie przyspieszyłoby to wydajność, ale To nie jest dobry pomysł ogólnie. Jeśli natkniesz się na pułap pamięci, sprawy staną się niestabilne.
Pamięć przewodowa nie jest zwalniana, gdy staje się niepoprawna, jest zwalniana tylko wtedy, gdy wyzwalane jest zdarzenie stronicowania, co nie nastąpi, jeśli pamięć wirtualna zostanie wyłączona. Więc nie potrwa długo, zanim cała twoja pamięć zostanie pochłonięta, nawet jeśli nie jest już używana.
źródło
Powodem wyłączenia pliku wymiany jest prawdopodobnie paranoja dotycząca dysków SSD o maksymalnej liczbie zapisów na blok. Pliki wymiany mogą być zapisywane często, co może powodować fragmentację dysku (a także fragmentację systemu plików) i ewentualnie spowodować wcześniejsze awarie dysku.
To powiedziawszy, jest to zdecydowanie przypadek przedwczesnej optymalizacji. To prawie zawsze a OKROPNY , OKROPNY pomysł, aby wyłączyć plik wymiany. Plik wymiany jest dostępny, gdy uruchomione programy zużywają więcej pamięci niż fizycznie zainstalowane. Jeśli go wyłączysz, możesz nie być w stanie uruchomić tylu programów jednocześnie (a limit jest znacznie niższy niż mógłbyś się spodziewać) lub możesz mieć problemy (np. Zamrożenie i konieczność ponownego uruchomienia komputera), gdy zabrakło ci pamięci.
Ten ostatni, którego doświadczyłem (z włączonym plikiem wymiany), gdy zabrakło miejsca na dysku. Miałem 120 koncertów z darmowymi ~ 3 koncertami. Podczas gry Civilization IV (duża, pełnoekranowa gra) zabrakło miejsca na dysku twardym (~ 50 megabajtów za darmo) i zostało wyświetlone okno „zabij teraz”. To chowało się za pełnoekranową grą, więc system właśnie się zamknął. Gdybym nie był w stanie ssh in z innego Maca zdalnie zabić kilku aplikacji, musiałbym przytrzymać przycisk zasilania.
źródło
Masz dwie świetne odpowiedzi, które wyjaśniają, dlaczego jest to zły pomysł w prawie wszystkich przypadkach, w których system może zapisywać dane na urządzeniu pamięci masowej.
Powodem, dla którego możesz wyłączyć swap, jest to, że system może działać na nośnikach tylko do odczytu, takich jak CD, DVD, zablokowany obraz sieciowy przy użyciu NetBoot lub fob tylko do odczytu USB, taki jak nowy instalator Lion lub kontroler odzyskiwania, który jest dostarczany z niektórymi komputerami Mac, w których brak jest optycznego dyski.
Pamięć wirtualna oznacza, że system może działać znacznie szybciej i zużywać mniej pamięci RAM, gdy wiele programów używa tego samego wspólnego kodu biblioteki. Każdy program myśli ma prywatną kopię całego potrzebnego kodu, ale gdy istnieje pamięć wirtualna, system ma dobry sposób na mapowanie tej samej fizycznej pamięci RAM na różne programy.
Wyłączenie swapu uniemożliwia macowi użycie niewielkiej części dysku jako pamięci podręcznej dla obliczonej pamięci, ale program nie był wystarczająco inteligentny, aby zapisać te wyniki w odpowiedniej pamięci podręcznej.
Jeśli masz kopię zapasową i czas na eksperymentowanie, dlaczego by jej nie wyłączyć i zobaczyć, jak zmienia się twoje doświadczenie.
Zamieniłbym się, nawet gdybym wiedział na pewno, że muszę płacić za nowy dysk rocznie. Przyspieszenie, które daje mi zamiana, jest OGROMNE. Nie zawsze tak jest, a czasami, gdy system jest rzucany lub stronicowania - możesz mieć coś przeciwnego. Wiele osób decyduje się na uruchamianie bez wymiany, aby uzyskać błąd przydziału pamięci, a nie pozwolić, aby mac zaczął stronicować, ponieważ może to spowolnić maszynę, gdy sprawy nie działają płynnie.
Twoja sprawa z dyskiem SSD może być inna, więc daj nam znać, jeśli spróbujesz.
źródło
dynamic_pager
, dwanaście sekund bez. Dla szerszego i bardziej miarodajnego porównania możemy użyć Phoronix Test Suite lub Geekbench .Będę tu narzekać: wyłączyłem swap na moim pod koniec 2008 roku unibody macbook pro i znacznie poprawiłem wydajność: mniej czekania, szybsze przełączanie między aplikacjami.
Pamiętaj, że mam oko na moją wolną pamięć i mam zainstalowane 6 GB. Kilka razy, gdy trafiłem na limit pamięci, system się zawiesił :-D
W moim nowym MacBooku Air nie marzyłbym o wyłączeniu swapu, jest już szybki z włączoną obsługą i ma tylko 4 GB.
Innym dobrym powodem, dla którego ludzie wyłączają wymianę na dysku SSD, jest to, że pobierają małe dyski SSD i potrzebują całej przestrzeni, jaką mogą uzyskać. W każdym razie nie rób tego.
źródło
Moje doświadczenie jest podobne do w00t. Wyłączyłem plik wymiany w SL i Lion, ponieważ wzrost wydajności działa na mnie. Wykorzystanie przewodowe wymyka się spod kontroli po mniej więcej tygodniu, ale naprawia to proste ponowne uruchomienie. Nie mam dysku SSD, ale powolny dysk 5400 obr./min. Czas życia dysków SSD nie jest tak zły, jak ludzie próbują je wydać. Jeśli robisz to tylko dlatego, że boisz się zużyć dysk SSD, zobacz: http://www.anandtech.com/show/4159/ocz-vertex-3-pro-preview-the-first-sf2500-ssd/2 i http://communities.intel.com/thread/21717?tstart=0 Intel ocenia swoje dyski za ponad 20 GB dziennie, codziennie, przez okres do 5 lat na dysku 80 GB. Większe dyski będą działać jeszcze dłużej. Przeciętny użytkownik nie używa nawet 10 GB / dzień.
Upewniam się, że monitoruję pamięć 4 GB za pomocą menu iStat i używam skryptu Automatora z poleceniem „oczyszczanie” bash (wymaga zainstalowania Xcode), aby usunąć nieaktywną pamięć i często otwierać więcej wolnej pamięci. Kilka razy miałem aplikacje z wyciekami pamięci zużywają całą pamięć RAM, musiałem wykonać twardy reset. Rzadko zdarza się to i ogólnie przyspiesza to, że warto zachować dla mnie plik wymiany. Zdaję sobie sprawę, że nie mogę mieć tylu otwartych aplikacji jednocześnie z tego powodu, jak stwierdzili inni, ale mogę z tym pracować.
źródło
Po prostu wrzucam moje 2 centy dla tych, którzy chcą wyłączyć swap, ponieważ małe dyski SSD: sleepimage zużywa znacznie więcej miejsca na dysku.
Dla osób zainteresowanych ograniczoną żywotnością dysku SSD (szczególnie tych z MBA i przewodowymi układami SSD, których NIE MOŻNA zastąpić), jeśli komputer jest uśpiony wiele razy dziennie, przepisywanie uśpienia może być problemem. Mój laptop może spać pół tuzina razy dziennie. Codziennie zapisuje 48 GB danych na moim dysku SSD.
Rozwiązaniem w każdym przypadku jest wyłączenie hibernacji, a następnie usunięcie pliku sleepimage, który jest tak duży jak zainstalowana pamięć RAM (8 GB w moim przypadku).
Ryzyko upadku: jeśli bateria zginie, gdy laptop śpi, Twój aktualny stan zostanie utracony. Będzie to równoznaczne z wymuszonym, twardym restartem. Brak fizycznego uszkodzenia laptopa, tylko utrata wydajności. Jeśli wyłączysz hibernację, a następnie uruchom baterię na niskim poziomie i nie możesz ładować, po prostu podaj kod, aby włączyć hibernację!
Aby wyłączyć hibernację, w Terminalu polecenie jest następujące:
Aby włączyć hibernację, polecenie jest następujące:
Aby usunąć ostatni sen, aby zwolnić miejsce na dysku SSD / HDD (ma sens tylko wtedy, gdy wyłączysz hibernację, w przeciwnym razie nowy zajmie to miejsce następnym razem, gdy twój komputer będzie spał):
Źródło: człowiek pmset
źródło
Wyłączanie wymiany robi zwiększyć wydajność. Na przykład regularnie używam Aperture, a gdy zamiana rośnie, wydajność się pogarsza, a kiedy przekracza 1 GB, muszę ponownie uruchomić system operacyjny, aby go wyczyścić i przywrócić wydajność. Uwaga: maszyna ma 6 GB pamięci RAM, a NIE wszystkie są zajęte, około 3 GB jest wolne, ale 1G jest wymieniany, co znacznie obniża wydajność.
źródło
Wyłączam wymianę urządzeń na wiele lat, zarówno w systemie OS X, jak iw innych wariantach systemu UNIX.
Używam narzędzia do powiadamiania mnie, gdy pamięć się wyczerpie i nigdy nie martw się o awarię systemu.
Mój iMac ma 12 GB, a po wyłączeniu wymiany prawie zawsze mam 4 GB wolnego, nawet przy wielu otwartych narzędziach programistycznych, aplikacjach, przeglądarkach itp.
źródło
Powtarzający się wzór jest następujący:
Osoby, które mają wyłączony plik wymiany, uzyskały lepszą wydajność (z wystarczającą ilością fizycznej pamięci RAM)
Ci, którzy NIE wyłączyli przestrzeni wymiany, są pewni, że nie zadziała, a stanie się coś strasznego i gorąco zalecają, aby tego nie robić.
Wynika to po prostu z dwóch rzeczy:
źródło
Po prostu osobiste doświadczenie.
Krótka uwaga: jeśli twój Mac używa zintegrowanej grafiki, jego pamięć jest współdzielona z główną pamięcią za pomocą kernel_task. W związku z tym będziesz musiał odjąć tę kwotę od całkowitej użytecznej.
Użytkownicy dysków SSD mają więcej miejsca, ale ważne jest, aby wiedzieć, że pamięć wirtualna rozwija się na dyskach SSD, dzięki czemu można uzyskać duży wzrost wydajności. Czy to boli SSD? Tak, ale długo będziesz wymieniać komputer Mac zanim go zauważysz.
źródło
Streszczenie wykonawcze
Obszar wymiany (nazywany partycją wymiany, plikiem wymiany lub plikiem strony) jest tylko mechanizmem zwiększającym pamięć fizyczną adresowalną przez system operacyjny.
Jeśli masz mało dostępnej fizycznej pamięci RAM, a na dzisiejszym komputerze, powiedziałbym, że masz 4 GB lub mniej pamięci RAM. Wtedy prawdopodobnie powinieneś mieć swap. Ale to zależy od obciążenia pracą i sposobu korzystania z komputera.
Jeśli masz więcej niż 4 GB pamięci RAM, istnieje duże prawdopodobieństwo, że Twój system nigdy nie użyje wymiany. Więc jeśli zamiana jest włączona, nie zmieni to wiele.
Chociaż zależy to od innych czynników, im dłużej maszyna będzie działać, tym bardziej prawdopodobne jest, że system operacyjny zamieni niewielką nieużywaną część pamięci RAM na swap eventhough, mimo że pozostało dużo miejsca. Jednak często system używa „wolnej” pamięci RAM dla buforów plików i innych rzeczy, a niektóre obciążenia mogą spowodować, że bufor plików wykorzysta całą dostępną pamięć RAM.
Informacje podstawowe
W każdym razie co by się stało, gdybyś wyłączył swap, a twoja pamięć została całkowicie wykorzystana? Cóż, następnym razem, gdy aplikacja zażąda więcej pamięci (np. Za pomocą malloc lub realloc), otrzyma błąd! Jeśli jest poprawnie zakodowany, aplikacja wykryje go, ale obsługa takiego błędu i bezpieczne zakończenie programu może być wyzwaniem! Jednak wielu programistów nie testuje udanego przydziału pamięci i często aplikacja ulega awarii, gdy tylko ta nieprzydzielona pamięć zostanie użyta. Istnieje więc duża szansa, że aplikacja ulegnie awarii, a tak naprawdę wiele aplikacji ulegnie awarii, ponieważ zazwyczaj działa jednocześnie więcej niż jedna aplikacja. Mam nadzieję, że samo jądro powinno być odporne, ale według mojego doświadczenia nie zawsze tak było.
Jeśli masz swap, będziesz miał takie samo zachowanie , ale masz wyższy limit, więc prawdopodobnie nie osiągniesz tego limitu.
Mam 2 osobne maszyny z 8 i 16 GB pamięci RAM. Moje osobiste wykorzystanie tej maszyny nigdy nie powinno zbliżać mnie do używania całej tej pamięci RAM (dziś! Może za kilka lat, która mogłaby być inna). Jedynym powodem, dla którego uderzałbym w fizyczne ograniczenia pamięci RAM, jest to, że proces został oszukany i zużywa całą pamięć RAM. Brak wymiany to ulga, jądro natychmiast zabije nieuczciwy proces, gdy tylko osiągnie limit RAM. Jeśli masz zamianą, otrzymasz bolesne doświadczenie (może nie na SSD ...), ponieważ twój system zamieni się i zamieni i zamieni się i stanie się czasem całkowicie niereagujący, dopóki mam nadzieję, że twoje jądro nie zabije sprawcy!
Radzi
Nie powinieneś się bać ludzi mówiących, że może się zdarzyć coś strasznie złego, jeśli usuniesz swap. Jeśli to zrobisz, twoja fizyczna przestrzeń adresowa zostanie zmniejszona, podobnie jak w przypadku przejścia z 4 GB pamięci RAM do 2 GB. Czy zrobiłbyś coś takiego? Następnie nie należy usuwać wymiany. Możesz jednak zdecydować o ograniczeniu go i to byłoby mądre .
Jeśli ktoś myśli, że jego obciążenie może przynieść mu użycie bliskiej lub większej ilości dostępnej fizycznej pamięci RAM lub jeśli potrzebna jest duża ilość operacji we / wy (odczyt / zapis na dyskach), należy zachować swap.
Gdy zachowana zostanie zamiana, użytkownik powinien spróbować ustawić limit ilości pamięci, z której proces może korzystać. W systemie Linux można użyć limitów pamięci cgroups, aby uniknąć sytuacji, w której jakiś proces wymyka się spod kontroli, nie znam odpowiednika w systemie OS X, ale tak powinno być.
Jednakże, jeśli ktoś ma więcej niż wystarczającą ilość dostępnej pamięci dla swojego obciążenia, może bezpiecznie wyłączyć swap lub może go zatrzymać. Nie zmieni się to znacząco nawet pod względem wydajności, ponieważ jeśli system nie użyje wymiany, nie zostaniesz uderzony przez spadek wydajności (szczególnie widoczny na starym rotacyjnym dysku twardym, a tym bardziej na dysku SSD).
Użycie tej samej sztuczki, jak powyżej, aby spróbować ustawić limity pamięci na proces lub grupę procesów, jest również korzystne w przypadku większej ilości dostępnej pamięci RAM.
Mój własny przykład
Mam stary komputer z 1 GB pamięci RAM, tam mam duży swap: 4 GB, więc mogę uruchomić Firefoksa i inne aplikacje na nim. Zwykle używam tak mało aplikacji (lub kart w Firefoksie), jak to tylko możliwe, aby mieć właściwe doświadczenie użytkownika.
Mam mały serwer z 8 GB pamięci RAM. Wiem dokładnie, ile mam pracy i robię nie chcę, aby mój serwer zwolnił, ponieważ proces został zbuntowany i zużywa całą pamięć. Nie mam żadnej bariery wymuszania limitu pamięci swap i cgroup, więc aplikacje lub usługi mogą ulec awarii, ale nie jądro. Btw, to jest komputer z Linuksem.
Następnie mam komputer Mac z 16 GB pamięci RAM. Nie jestem jej jedynym użytkownikiem i nie mielibyśmy nic przeciwko czekaniu na zmianę użytkownika. Tam mamy swap, trudno mi zaplanować obciążenie pracą innych użytkowników tego komputera. Nawet gdybym był jedynym, którego użyłbym, zamieniłbym. Często uruchamiam kilka maszyn wirtualnych i używam aplikacji zajmujących pamięć, ale nie wszystkie w tym samym czasie, więc nie mam nic przeciwko zamianie systemu operacyjnego w nieużywanej aplikacji, dzięki czemu mogę uzyskać szybsze operacje we / wy na dysku lub uruchomić kolejną maszynę wirtualną. Aż do tej pory nie widziałem tej maszyny!
źródło
Właśnie wyłączyłem plik wymiany na moim Macbooku z 2011 r. (4 GB RAM, 128 GB SSD), ponieważ miałem dość tego, że plik wymiany powoli pochłaniał całą moją pozostałą przestrzeń HD, a następnie musiał się ponownie uruchomić. W ten sposób pomysł polega na tym, że będę uruchamiał mniej programów.
Zobaczę, czy to naprawdę działa lub czy będę musiał zrestartować mimo to, aby wyczyścić pamięć „przewodową”, ale na razie wygląda na to, że działa dobrze. Kiedy pamięć się zapełniła, komputer zwolnił tyle samo, ile zabrakło w moim dysku SSD, ale odzyskał znacznie szybciej, gdy tylko zamknąłem aplikacje. (I rzeczywiście byłem w stanie zamknąć aplikacje, których zwykle nie mam, gdy SSD się zapełnia).
Zobaczę, jak to idzie stabilnie, ale jak na razie jestem szczęśliwym obozowiczem. Wymusza także na mnie uruchamianie mniejszej liczby aplikacji (i kart Chrome) naraz, co jest przydatne do skupiania się na zadaniach.
źródło
Podstawowym powodem wyłączenia pliku wymiany nie jest szybkość - jest to miejsce na dysku.
Jeśli ktoś jest użytkownikiem, który rutynowo pracuje w obrębie 5 GB pełnego dysku, wyłączenie swapu zatrzyma ciągłe dręczenie się brakiem miejsca; Rutynowo kończę z plikiem wymiany 4+ GB z rutynowego przeglądania.
Poprawa prędkości jest zdumiewająca w przypadku starszych maszyn; to nie jest imponujące na nowoczesnych maszynach wyposażonych w SSD. (W OSX 10.0 na iMacu użycie wirtualnej pamięci zmniejszyło o połowę szybkość wielu operacji, w tym kopiowanie plików między dyskami).
źródło