od kilku lat czytam, że dobrym pomysłem jest utworzenie partycji wymiany z podwójną przestrzenią mojej pamięci RAM. czy nadal obowiązuje? czy to nie jest już potrzebne?
Mam serwer z 8 GiB RAM i muszę utworzyć partycję wymiany i zastanawiałem się, czy 16 GiB to za dużo.
Odpowiedzi:
W dużych systemach, 8 GB fizycznej pamięci RAM, zwykle przydzielamy 2 GB swapu. Są to załadowane serwery baz danych z systemem Oracle lub PostgreSQL. Przez lata nigdy nie widziałem zamiany nawet przy dużym obciążeniu. Duże obciążenie to około 100 do 150 użytkowników wykonujących około 10 000 odczytów SQL, a może 2500 zapisów na minutę.
Dostosowujemy również poziom zamiany, aby zniechęcić do zamiany i wyłączamy niepotrzebne procesy, o których wiemy, że nie musimy działać. (Niestandardowe kompilacje systemu Linux)
Podobnie jak Eddie, mówi powyżej, 1x fizyczna pamięć RAM jest dobrą regułą dla wszystkiego, co poniżej 4 GB. Robię niestandardowe kompilacje Linuksa dla dużej firmy z listy Fortune 500 i takie są rzeczy, które zwykle robimy, i nie mieliśmy żadnych problemów przez ostatnie 5 lat, z którymi się konsultowałem.
W większych systemach: 64-bitowy Linux z 32 GB i 64 GB pamięci RAM, są to nasze serwery baz danych Oracle, i zwykle przechowujemy 2 GB wymiany na takie rzeczy, jak Eddie wskazuje powyżej - bezczynne procesy zostaną przeniesione do wymiany w zależności od ustawień swapiness.
źródło
Pozornie ponadczasowe pytanie. Dobrzy ludzie ze SlashDot dyskutowali o tym jakiś czas temu. Sprawdź, co mieli do powiedzenia:
źródło
Zobacz odpowiedź Ile miejsca SWAP w systemie o wysokiej pamięci? po wskazówki, chociaż twoje pytanie jest bardziej ogólne. Opinie na ten temat różnią się znacznie, ale generalnie ludzie z 1 GiB RAM lub więcej wydają się albo działać bez zamiany całkowicie, albo z 1xmemory jako zamianą.
Nawet jeśli nie planujesz używać tak dużo pamięci RAM, że wymusisz zamianę, istnieje pewna wartość posiadania co najmniej 1x pamięci jako zamiany: Pozwala to systemowi operacyjnemu zamienić niektóre rzeczy, których nie należy używać natychmiast, aby zamiast tego mógł użyć tej pamięci na przykład dla buforów dysku lub IO.
źródło
Jeśli spodziewasz się, że Twój system będzie w stanie hibernacji, a następnie pomyślnie wznowi :-), prawdopodobnie lepiej jest przeznaczyć więcej miejsca na partycję wymiany niż ilość fizycznej pamięci RAM
źródło
Mój dostawca VPS nawet nie zapewnia przestrzeni wymiany dla serwerów, a moja działała bez niego dobrze.
Większość serwerów, które widzę na co dzień w pracy, również nie wymaga wymiany.
Edytować
Jednak - jeśli korzystasz z JVM, upewnij się , że masz co najmniej tyle miejsca wymiany, ile kiedykolwiek ustawisz z
-Xmx
powodu znanego problemu z JVM.Krótko mówiąc, gdy JVM potrzebuje więcej pamięci niż obecnie używa (ale nadal jej nie osiągnął
Xmx
), to:Oznacza to, że jeśli zamiana jest mniejsza niż Twoja
Xmx
, może się nie powieść.Cytując raport o błędzie
Staram się grać bezpiecznie podczas pracy z JVM i ustawiam swap na równą pamięć fizyczną.
źródło
Biorąc pod uwagę szybkość współczesnych dysków twardych, duże wymiany są tylko zaproszeniem do thrashowania. Być może dyski SSD odwrócą ten trend, ale przy maksymalnej prędkości transferu 300 MB / s dla dysku zamiana 2-4 GB zajmie sporo czasu.
W dawnych czasach (np. Linux 1.2, i386, SunOS 4.x) działało może być 5-15 MB procesów demona i gdziekolwiek z 4-32 MB pamięci RAM, a więc demony, które zostały właśnie zablokowane, czekając na I / O można wymienić bez prawdziwego spadku wydajności ... I lepiej, ponieważ programy użytkownika mogą mieć zaledwie 2-3 MB dostępnej pamięci RAM. Zamiana miała sens.
Teraz w moim środowisku większość serwerów ma duże obciążenia pojedynczą pamięcią, a pamięć RAM może być dość dokładnie oszacowana ... Zamiana jest dostępna na wypadek awarii, uciekających procesów i tak dalej.
Wyjątkiem jest dla laptopów i stacji roboczych, które mogą spać. Wiele systemów operacyjnych korzysta z obszaru wymiany, aby zapisać obraz zawieszenia. W takich przypadkach zmiana musi być większa niż pamięć fizyczna. W Linuksie z suspend2 / tuxonice powinieneś mieć 2xRAM w rozmiarze wymiany, aby obsługiwać zawieszenie na dysk.
źródło
W dzisiejszych czasach, jeśli korzystasz z serwera 32 GB lub 64 GB, 4 GB wymiany na wartość domyślną to bezpieczna kwota. Coś większego niż to jest przesada przy dostępnej pamięci fizycznej.
źródło
Najlepiej, jeśli w ogóle nie będziesz używał wymiany, a 2x RAM to naprawdę coś, co pozostało z lat.
Jeśli się tym martwisz, zrobiłbym coś takiego:
Myślę, że 16 GB osobiście brzmi o wiele za dużo.
źródło
W dawnych czasach, kiedy chciałeś, jak najwięcej, zużycie pamięci w nowoczesnych jądrach * nix należy już do przeszłości. Stare powiedzenie brzmiało „2x twoja pamięć”. Pomiędzy 2 GB lub ilością miejsca, jaką ma dzisiaj urządzenie w pamięci RAM, a wiek zbliży Cię do miejsca, w którym musisz być.
źródło
Zamiana jest również używana do przechowywania zrzutów po panice jądra. Jeśli jesteś zainteresowany analizą tych zrzutów i nie określiłeś innego miejsca zrzutu, twoja zamiana powinna być co najmniej tak duża jak twoja pamięć RAM.
źródło
Nie ma jednego algorytmu, który wskazywałby, ile wymiany potrzebujesz. W praktyce musisz obciążyć system największym obciążeniem, które planujesz wesprzeć, i dowiedzieć się, ile zasobów faktycznie używa. Ustaw odpowiednio plik wymiany.
W przypadku fizycznej pamięci RAM należy ustawić system pod rzeczywistym obciążeniem „rejsowym”, którego należy się spodziewać, i odpowiednio go kupić. W przypadku systemów o niskim opóźnieniu nie należy w ogóle wymieniać ładunków wycieczkowych (to nie to samo, że nie przydzielono lub nawet nie użyto wymiany). Może wystąpić niewielka zamiana z powodu mało używanych narzędzi systemowych do prowadzenia domu , ale zasadniczo powinieneś mieć jak najmniej wymiany.
Oczywiście możesz wymienić wydajność za niższą cenę.
źródło