Czy nadal potrzebujemy partycji wymiany na serwerach?

37

Przeczytałem to pytanie , ale zostało zadane w kontekście serwerów, a nie komputerów stacjonarnych i notebooków.

Jeśli na komputerze jest zainstalowana duża ilość pamięci RAM, powiedzmy 8 GB, czy nadal potrzebujemy przestrzeni wymiany?

wózek dziecięcy
źródło

Odpowiedzi:

33

Istnieje powszechne nieporozumienie, że posiadanie przestrzeni wymiany ma negatywny wpływ na wydajność systemu. To jest niepoprawne. Tak długo, jak masz wystarczającą ilość pamięci RAM, posiadanie obszaru wymiany bez względu na jego rozmiar wcale nie wpływa negatywnie na wydajność. Na wydajność wpływa brak pamięci RAM i efektywne wykorzystanie przestrzeni wymiany.

  1. Jeśli nie masz przestrzeni wymiany i akurat brakuje pamięci RAM, jądro wybierze jeden lub więcej procesów, które według niego są dobrymi kandydatami (chociaż możesz dać mu pewne wskazówki ) i je zabije.

  2. Jeśli masz miejsce wymiany i brakuje pamięci RAM, jądro wybiera mniej używane strony pamięci i umieszcza je w obszarze wymiany, aby zwolnić pamięć RAM. Spowolni to system, ale nie wpłynie to na twoje aplikacje.

Zawsze wolę przypadek 2., ponieważ czuję się niekomfortowo tracąc części lub całość mojej pracy, ponieważ jądro uważa, że ​​moje aplikacje są warte zabicia. Co więcej, przy obecnym rozmiarze przeciętnego dysku znajdującego się w zakresie TB, zarezerwowanie kilku procent na zamianę zwykle nie stanowi problemu.

jlliagre
źródło
Czy twój pierwszy punkt jest naprawdę prawdziwy? Jądro zabije uruchomione procesy, aby zwolnić pamięć RAM? Dlaczego jądro nie miałoby po prostu używać miejsca na dysku zamiast zabijać aktywne procesy?
Donato,
4
@Donato Tak, moja pierwsza uwaga jest prawdziwa. Jeśli nie ma skonfigurowanej przestrzeni wymiany (tj. Dysku), jądro nie ma możliwości użycia miejsca na dysku w celu zwolnienia pamięci RAM.
jlliagre
a co się stanie, kiedy skończę przestrzeń wymiany? Cofnąć się w przypadku 1?
Zac
@Zac Tak, chyba że naprawdę wyłączyłeś nadmierne zaangażowanie pamięci. W takim przypadku ucierpi pierwszy proces, który nie przydzieli pamięci. Zauważ, że jeśli masz skonfigurowany (znaczny) obszar przestrzeni wymiany i używasz go w większości, prawdopodobnie będziesz miał poważne problemy z wydajnością.
jlliagre
1
@Zac Jeśli wyczerpiesz swoje miejsce wymiany, jesteś zasadniczo w takiej samej sytuacji, jak brak miejsca wymiany. Jeden lub więcej procesów umrze. Mogą zostać wybrani przez zabójcę oom lub po prostu znajdować się w niewłaściwym miejscu i niewłaściwym czasie. Zwykle właściwie monitorowany system produkcyjny powinien uruchomić alarm, a następnie reakcję administratora, zanim nastąpi wyczerpanie zamiany.
jlliagre
9

Jeśli masz pamięć RAM o pojemności 3 GB lub większej, Ubuntu automatycznie NIE UŻYWA przestrzeni wymiany, ponieważ jest ona wystarczająca dla systemu operacyjnego.

Czy naprawdę potrzebujesz partycji wymiany?

Moim zdaniem odpowiedź brzmi: tak. Ponieważ nie wiesz, co będziesz instalować lub robić w przyszłości, co może wymagać wymiany przestrzeni. Również jeśli planujesz użyć hibernacji, możesz chcieć mieć trochę przestrzeni wymiany. W rzeczywistości nie musisz mieć partycji wymiany, ale jest to zalecane w przypadku, gdy zużyjesz tyle pamięci podczas normalnej pracy.

Aby uzyskać więcej informacji o potrzebie zamiany lub jej braku, zobacz Często zadawane pytania dotyczące zamiany Ubuntu lub Wymagania dotyczące zamiany

Mitch
źródło
Czy masz link potwierdzający twoje pierwsze oświadczenie?
jlliagre
@jlliagre Spójrz na mygeekopinions.blogspot.com/2011/03/… , która prowadzi do askubuntu.com/questions/23676/…
Mitch
1
Oświadczenie na blogu źle podaje odpowiedź askunbutu. Nie ma dowodów, że user4124 jest programistą Ubuntu. „(zwykle) nie będzie miał zastosowania” jest zupełnie inny niż „automatycznie wyłączy”. W rzeczywistości Ubuntu nigdy nie wyłącza wymiany i skorzysta z niej, jeśli zajdzie taka potrzeba, nawet jeśli masz 8 GB pamięci RAM lub więcej.
jlliagre
@jlliagre Oznacza to, że przestrzeń wymiany jest dostępna, ale nie jest używana. Kiedy zainstalowałem Xubuntu 14.04, utworzyłem zamianę 16 GB i jeszcze nigdy nie był używany. patrz zdjęcie
Mitch
1
Cieszę się, że poprawiłeś swoją odpowiedź. „Nieużywany” to zdecydowanie nie to samo, co „wyłącz”. Ubuntu nie wyłącza wymiany i skorzysta z niej, jeśli zajdzie taka potrzeba, bez względu na rozmiar.
jlliagre
4

Przez ostatnie 6 lat korzystałem z systemów stacjonarnych z co najmniej 8 GB pamięci RAM. Nie pamiętam przypadku, gdy system zamienił pamięć podczas normalnego użytkowania - i dość często monitoruję użycie zasobów za pomocą htopa. Nawet w przypadku jednoczesnego uruchomienia 4 maszyn wirtualnych (serwerów) w celach programistycznych nie nastąpiła zamiana.

To powiedziawszy, jeśli uruchomione aplikacje zajmują dużo pamięci (np. Edycja wideo, edycja obrazów, manipulowanie tabelami dużych baz danych itp.), Możesz napotkać sytuację, w której zabraknie pamięci. W takim przypadku może być pożądane posiadanie przestrzeni wymiany. Pomyśl o tym jako o ostatecznej siatce bezpieczeństwa. A biorąc pod uwagę pojemność wielu terrabajtów dzisiejszych systemów, ile wart jest kilka gigabajtów w partycji wymiany? Lepiej bądź bezpieczny niż przykro :-)

hmayag
źródło
2

Posiadanie przestrzeni wymiany jest zawsze dobrą rzeczą.

Tu cytuję Michael Jang za RHCSA / RHCE Certification Study Guide

Linux Swap Space

Takie miejsce służy do zwiększenia ilości efektywnej pamięci RAM w systemie, jako pamięci wirtualnej dla aktualnie uruchomionych programów. Ale nie można po prostu kupić dodatkowej pamięci RAM i wyeliminować przestrzeń wymiany. Linux przenosi rzadko używane programy i dane w celu zamiany przestrzeni, nawet jeśli masz gigabajty pamięci RAM.

W systemach do 2 GB domyślny rozmiar przestrzeni wymiany jest dwa razy większy niż ilość zainstalowanej pamięci RAM. Powyżej 2 GB jest to ilość pamięci RAM + 2 GB. Ale to nie są zasady „twarde i szybkie”. Stacje robocze z kilkoma GB pamięci RAM często zużywają bardzo mało miejsca wymiany. Ale może być używane częściej w systemach, które nie są restartowane przez wiele miesięcy lub mają duże zapotrzebowanie na niektóre usługi.

Gayan Weerakutti
źródło
1
„Linux przenosi rzadko używane programy i dane w celu zamiany przestrzeni, nawet jeśli masz gigabajty pamięci RAM”. Zakładam, że mówimy tutaj o kodzie i danych załadowanych do pamięci. Jeśli masz 8 GB pamięci RAM i korzystasz tylko ze zwykłych aplikacji, dlaczego, na litość boską, każda strona kodu lub danych miałaby być wymieniana?
Tarik
1

To zależy od tego, co działasz w systemie.

Jeśli tworzysz zawartość, prawdopodobnie dobrym pomysłem jest nadal przydzielanie przestrzeni wymiany, więc jeśli zabraknie pamięci RAM, procesy po prostu zwolnią, zamiast zostać zabitym i potencjalnie stracić pracę.

Jeśli na komputerze są uruchomione programy, nie potrzebujesz ani nawet nie potrzebujesz przestrzeni wymiany. Projektuję i buduję wiele systemów wyświetlania podobnych do kiosku, które dokładnie pasują do tego zastosowania. Wolałbym, żeby proces umarł nagle niż byłby powolny, ponieważ wtedy mogę wykryć ten stan i go naprawić.

Eric Sokołowsky
źródło
1

Jeśli kiedykolwiek będziesz potrzebować wymiany lub więcej przestrzeni wymiany, możesz utworzyć pliki wymiany w systemie plików. Oczywiście nie będą one obsługiwać hibernacji, ale jest to rozsądne podejście do laptopa z dyskiem SSD i dużą ilością pamięci RAM.

Grzegorz Żur
źródło