Dlaczego powinienem wyłączyć plik wymiany w systemie Mac OS X?


51

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?


10
To jest często wyłączone przez mniej kompetentnych, ponieważ słyszeli na jakimś blogu, że wystrzelony występ rzucił dach. Dyski SSD zapewniają również ładne środowisko testowe, ponieważ są z natury szybkie. Nie rób tego. Zmniejszy to stabilność, az czasem doprowadzi do katastrofalnych skutków. Do dziś nie widziałem żadnych prawdziwych danych (prawidłowych i wiarygodnych) pokazujących wzrost wydajności. I jest to kluczowy element systemu operacyjnego, niezależnie od tego, czy masz 2 GB, czy RAM lub 120.

2
Jakie katastrofalne skutki? Ciekawe ... wygląda na to, że mój komputer (MacBook Pro 4 GB) jest szybszy o tonę. Na przykład, kiedy otwieram nowe okna terminali, nie ma już żadnych blokad ... to moment, w którym zajęło kilka sekund wcześniej. Udało mi się otworzyć dwa razy więcej aplikacji niż zwykle i nic złego się nie stało.
orange80

4
orange80: Zwykłą przyczyną powolnych okien terminali jest proces logowania sprawdzający poprzedni login, który można naprawić przez hushlogin: apple.stackexchange.com/a/54167/22570 - może zdarzyło ci się ponownie uruchomić komputer po zmianie ustawień wymiany? Nie ma powodu, dla którego prędkość okna terminala zostałaby poprawiona przez usunięcie wymiany.
Ken

Rozumiem, że dzięki dyskowi SSD o małej pojemności można zwolnić miejsce. Ale po stronie wydajności dyski SSD są znacznie szybsze niż HD, więc nie widzę, jak wyłączenie wymiany w systemie operacyjnym opartym na SSD naprawdę poprawiłoby wydajność. Jakieś doświadczenie w tej sprawie? Dzięki.

1
W Superużytkowniku z zaakceptowaną odpowiedzią: Wyłącz dynamiczny program Mac? (2012-04-27)
Graham Perrin

Odpowiedzi:


39

zastanawiam się, dlaczego ktoś chciałby wyłączyć plik wymiany w Mac OS X.   Czy to zwiększa wydajność? Stabilność?   Jakieś wady?

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.

Wreszcie, czy ma sens wyłączanie pliku wymiany, gdy nie jest używany dysk SSD?

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.


4
System pamięci wirtualnej mac jest bardzo leniwy, ponieważ tworzy fizyczne pliki wymiany tylko wtedy, gdy nadszedł czas na wymianę rzeczywistej pamięci. Niezależnie od szybkości, jaką możesz zauważyć, nie zmuszając do opóźnienia rzeczy, aby zamienić zapis na swap, prawie na pewno zostanie zrekompensowana przez poprzednie przyrosty prędkości związane z posiadaniem wymiany w pierwszej kolejności. Posiadanie wymiany sprawia, że ​​macs działa szybciej. Reszta odpowiedzi brzmi: na miejscu - ładnie wykonane!
bmike

2
@geotavros System pamięci wirtualnej w systemie Mac OS X tak nie działa tak samo jak Windows. Mając 4 GB pamięci, zaufaj mi, Twój Mac będzie działał szybciej dzięki włączonej pamięci wirtualnej. Wyłączenie maszyny wirtualnej spowoduje tylko bóle głowy i niestabilność systemu.
ghoppe

3
FYI, nowoczesny dysk SSD z poziomowaniem zapisu i przyzwoitą pojemnością (128 GB), napisany w sposób ciągły, będzie miał limit cyklu zapisu mierzony w ciągu stuleci. Był to uzasadniony strach w 2000 r. W przypadku małych, prymitywnych dysków SSD, ale już nie.
Ken

2
W przypadku MacBookPro5,2 z pamięcią 8 GB poprawa wydajności jest dramatyczna. W Snow Leopard lub Lion w VirtualBoxVM poprawa jest zdumiewająca. We wszystkich trzech przypadkach system operacyjny wydaje się wykorzystywać pamięć w sposób minimalizujący ryzyko osiągnięcia „limitu” (gdzie wszystkie rzeczy skutecznie się zatrzymują), ale to ryzyko pozostaje, więc rozsądnie jest obserwować użycie w monitorze aktywności.
Graham Perrin

2
Dla informacji VM (lub pamięć wirtualna) nie należy mylić z plikiem wymiany. Windows, OS X, * BSD, Linux, wiele Unixów używa pamięci wirtualnej. Zwykle struktura tego systemu operacyjnego zapewnia maszynę wirtualną na proces, proces przydzielany jest do pamięci w tym obszarze, a system operacyjny dba o umieszczenie tej przydzielonej pamięci na fizycznej pamięci RAM lub wymiany, jak uważa system operacyjny. Mając lub nie zamieniając się, może zmienić się w jeden lub inny sposób dla różnych kryteriów (szybkość, responsywność itp.), Zależy to od obciążenia każdego z nas. Jak mówią Anglicy: twój krąg może się różnić! I bardzo w tym przypadku.
Huygens

27

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.


6
Chciałbym powtórzyć, jaki to zły pomysł. Swap jest używany, nawet jeśli masz 16 GB pamięci RAM. Nie tak dużo, ale mały fragment jest już zapisany w wymianie. Zawsze. To zabezpieczenie. I chociaż system operacyjny może działać bez niego, nie możesz być pewien, jak zachowują się aplikacje firm trzecich. HD zostaje zapisane. To fakt, jeśli życie. I nie, nie będzie wzrostu wydajności w „prawdziwym świecie”. To placebo.

3
@cksum W niektórych specyficznych scenariuszach serwera, administratorzy sysadmin wyłączą plik wymiany, ponieważ powoduje to, że ta konkretna konfiguracja jest szybsza, ale nie robią tego bez testowania, aby upewnić się, że obie (a) nie zabraknie pamięci ) faktycznie jest szybszy. Ale to jest serwer obsługiwany przez profesjonalistów: nigdy nie jest konieczny na maszynie konsumenckiej.
CajunLuke

@cksum Mogę zgodzić się z twoim pierwszym zdaniem, masz rację z drugim, trzecim i czwartym, ale tam jest śmieci. System operacyjny nie zamienia się na „zabezpieczenie”, system operacyjny zamienia się, aby udostępnić więcej pamięci do aktywnego procesu, który wymagałby tego, lub przyspieszyć I / O przez buforowanie danych, więc długo nieaktywna pamięć może zostać zwolniona w RAM. Kiedy tworzysz aplikację, żądasz pamięci do systemu operacyjnego, ta pamięć jest częścią twojego wykorzystania pamięci wirtualnej, jako programista lub aplikacja nie wiesz, czy system operacyjny umieścił tę pamięć lub jej część w fizycznej pamięci RAM lub wymiany. (ciąg dalszy nastąpi)
Huygens

Jeśli więc aplikacja innej firmy zażąda więcej pamięci niż jest dostępna, system operacyjny wyświetli błąd. Jest to niezależne od wymiany lub nie. Mając swap, podniesiesz limit, to wszystko. Jeśli chodzi o wydajność, jeśli masz 2 użytkowników zalogowanych, jeśli aktywny użytkownik używa edytora wideo z dużymi plikami, system operacyjny może zacząć umieszczać strony pamięci nieaktywnego użytkownika w wymianie, aby przyspieszyć zadania wykonywane przez aktywnego użytkownika. W tym przypadku uzyskasz lepszą wydajność pod względem prędkości. Jednak przełączenie na innego użytkownika będzie wolniejsze, system operacyjny musi ponownie odczytać swap. To nie jest placebo!
Huygens

1
Kiedyś (w Linuksie) zapomniałem skonfigurować partycję wymiany podczas konfigurowania. Kiedy wisiałam, myślałam, że to błąd jądra - okazało się, że to brak pamięci wymiany podczas gry w minecrafta. użyj wymiany.
Wyatt8740

12

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.


1
Znajduję coś przeciwnego, a olbrzymi przyspieszyć, gdy dynamic_pager jest wyłączone . Zrzut ekranu w chwili obecnej apple.stackexchange.com/a/60661/8546 pokazuje rozmiar pamięci wirtualnej i pomiary stron w czasie, gdy demon jest wyłączony (podczas gdy pliki wymiany nie są używane).
Graham Perrin

Co dokładnie mierzy się w celu określenia przyspieszenia? (Czy widzisz brak opóźnień lub opóźnień w interfejsie użytkownika lub coś innego, co nie jest łatwe do policzenia lub zmierzenia?)
bmike

Bez pomiaru: z Lionem większość rzeczy wydawała się zauważalnie szybsza - wystarczyło mi użyć słowa olbrzymi . Ostatnio: 10.8 w VirtualBoxVM, na przykład, aby zalogować się i wznowić Monitor aktywności, trwa szesnaście sekund dynamic_pager, dwanaście sekund bez. Dla szerszego i bardziej miarodajnego porównania możemy użyć Phoronix Test Suite lub Geekbench .
Graham Perrin

9

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.


Niesamowite, aby mieć prawdziwe doświadczenie tam, gdzie to zadziałało. Jakie było zobowiązanie RAM w maszynie, gdy zamiana była wyłączona? Co się stało, gdy otworzyłeś więcej aplikacji niż zmieściłoby się w pamięci RAM? Ile masz pamięci RAM i jakie aplikacje będą działać w tej przestrzeni wygodnie bez błędów?
bmike

1
@bmike, nie jestem pewien, system zawiesza się :-D, 6GB i wszystkie, których używam :). Aperture lub XCode są prawdziwymi świstami pamięci i mogą czasami przechylać system, ale Skype, Mail, Adium, Safari, Chrome, iTunes i OmniFocus pasują ładnie ...
w00t

5

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ć.


Zakres pamięci ma opcję automatycznego czyszczenia. (jeśli dynamic_pager jest włączony, nie zezwalam na czyszczenie.)
Graham Perrin

5

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:

 sudo pmset -a hibernatemode 0

Aby włączyć hibernację, polecenie jest następujące:

 sudo pmset -a hibernatemode 3

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ł):

 sudo rm -rf /var/vm/sleepimage

Źródło: człowiek pmset


3

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ść.


3

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.


5
Jakiego narzędzia pamięci używasz?
Dmitriy

1

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:

  1. Przestarzałe pomysły na niedostatek i wysoki koszt fizycznej pamięci RAM, które nie są już ważne
  2. Naprawdę słaby mechanizm wymiany w systemie MacOS powodujący użycie plików wymiany, gdy jest wystarczająca ilość fizycznej pamięci RAM.

1
Gdyby przestrzeń wymiany była używana TYLKO w razie potrzeby, byłoby świetnie. Jednak tak nie jest. Używam maszyn wirtualnych 2 GB i 4 GB na moim MacOS. Jeśli mam 1,6 GB wolnej pamięci RAM, powinienem być w stanie uruchomić maszynę wirtualną o pojemności 1 GB (lub inny program), ale nie mogę, ponieważ system operacyjny zaczyna ją stronicować. W rezultacie mogę korzystać tylko z około 85-90% mojej pamięci RAM. Jeśli chcę dostać się do WSZYSTKIEJ mojej pamięci RAM, muszę wyłączyć stronicowanie. Robię to na wszystkich komputerach z systemem Windows i chciałbym zrobić to samo na moim MacOSie. Jeśli w programie zabraknie pamięci RAM, nie powiedzie się. To właśnie chcę się wydarzyć. Nie chcę innych, działających aplikacji

3
YMMV. Nie wyłączam już wymiany, ponieważ nie znalazłem jej, aby pomóc w wydajności jakiejkolwiek nowoczesnej maszyny ładowanej w pamięci RAM. Kiedyś korzystałem z tego, że pomagało mi to w dawnych czasach. Obecnie nie tylko NIE widzę żadnej zmiany wydajności poprzez wyłączenie swap, ale widzę znacznie zwiększoną niestabilność aplikacji.
Brian Knoblauch

1
Ta niepożądana rzecz będzie zdarza się, że człowiek zapomni, że nie może uruchomić innego programu i na czas maszyna ulegnie awarii z powodu małego błędu pamięci. To, czy jest to okropne, zabawne, edukacyjne, zależy od czasu, częstotliwości tworzenia kopii zapasowych i tolerancji na opóźnienia.
bmike

1

Po prostu osobiste doświadczenie.

Memory Amount    |
 4 GB            | Don't disable it, Mountain Lion itself boots with about 1 GB.
 8 GB            | Do if you don't run apps that requires more than 1 GB of memory, in short, virtualization software, Photoshop, and stuff.
16 GB or more    | Do it! Even Xcode or Final Cut won't use more than 4 GB of memory, at least as I've seen. Just don't run too many virtual machines though.

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.


1
Osobiście wyłączyłem pamięć wirtualną na moim Retina MacBook Pro z zaledwie 8 GB pamięci. Oto matematyka, system wykorzystuje około 2 GB zintegrowanej grafiki zliczającej pamięć. To dla mnie 6 GB. Wykonuję Xcode do pracy, zużywając nie więcej niż 2 GB pamięci. Więc mam dużo do stracenia.
Shane Hsu

1

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!


0

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.


0

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).


To brzmi bardziej jak naprawienie klaksonu, ponieważ hamulce nie działają. Jeśli dysk jest zbyt pełny, wyłącz niektóre dane.
Tetsujin

@Tetsujin Największy pojedynczy plik na tym dysku BYŁ plikiem wymiany.
aramis

mój punkt widzenia nadal istnieje. Mniej danych, większy dysk lub więcej pamięci RAM i nie musiałbyś.
Tetsujin
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.