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!