Czy ma to znaczenie dla wielkości obszaru wymiany w systemie Linux


12

Czy to ważne, czy wielkość obszaru wymiany w Linuksie została ustawiona za mała (powiedzmy 1 Gb), a główna pamięć RAM jest 128Gb?

Czy zawsze powinniśmy ustawić wielkość obszaru wymiany na dwukrotność pamięci RAM?

AKTUALIZACJA:

Cześć, dziękuję wszystkim za odpowiedź na to pytanie. W rzeczywistości mam to pytanie, ponieważ napotkaliśmy pewne problemy podczas korzystania z małego systemu klastrowego. Problemy są zamieszczone tutaj . Poniższy obrazek przedstawia niektóre informacje o niektórych komputerach w tym małym klastrze.

Informacja

Jest MEMTOTto całkowita ilość pamięci RAM tego komputera, SWAPTOcałkowita ilość obszaru SW AP tego komputera i SWAPUSużywana ilość obszaru SWAP. Jak pokazano na zdjęciu, użycie SWAP jest rzeczywiście niewielkie.

Próbując rozwiązać problemy zamieszczone tutaj , nie jesteśmy pewni, czy wielkość obszaru SWAP jest ustawiona zbyt mała, co jest po prostu 1Gbwzględne 128Gb, jak pokazano na rysunku. Mam więc to pytanie. Przepraszam, że nie opublikowałem wszystkich informacji tła w oryginalnej wersji tego postu. Wcześniej myśleliśmy również, że jeśli ilość pamięci RAM jest duża, możemy ustawić niewielką ilość SWAP. Próbowaliśmy ustawić SWAP c0148jako na 16Gb, problem wydaje się być żaden (być może powinniśmy wyciągnąć taki wniosek po długim obserwowaniu ich statusów).

Nie jesteśmy specjalistami w systemie Linux i nie mogliśmy wyjaśnić, dlaczego tak się stało. Jest prawdopodobne, że jest to system klastrowy, a SGE zarządza zasobami każdego komputera i musi mieć względnie dużą liczbę SWAP, ponieważ z tego komputera może korzystać wiele zadań przesłanych przez wielu użytkowników.

Ponadto, jeśli po prostu ustawimy zbyt dużą liczbę SWAP, warto również rozważyć inne problemy, które spowodowałoby.


1
Jeśli masz 128 GB pamięci RAM i zaczynasz zamieniać - ten system prawdopodobnie jest poza kontrolą i martwy. Ja osobiście prawdopodobnie uruchomiłbym ten serwer bez wymiany. OOMKiller powinien zająć się każdym niekontrolowanym procesem, zanim zabraknie pamięci spowoduje awarię - a awarię i tak można szybciej naprawić.
Ryan Gooler

1
Który byłby - co? Kilka megabajtów rzeczy z init? Jakieś buforowane wspomnienia, które zostaną wyrzucone, gdy tylko coś rzeczywiście będzie wymagało pamięci RAM? Jeśli urządzenie POTRZEBUJE zamiany pamięci do działania, jest przeciążone i i tak musi zostać powiększone.
Ryan Gooler

1
@Ryan Gooler: Jeśli wykonujesz symulacje naukowe, procesy wykorzystujące 128 Gb lub więcej nie są nieracjonalne.
jamesqf


1
@RyanGooler Wystarczająco prawda. Chodzi mi o to, że zwiększenie wymiany może pozwolić programom zużywać więcej fizycznych pamięci RAM. To tylko kilka MB, ale jest lepsze niż nic :)
Navin

Odpowiedzi:


19

Jądro Linux ma ustawienie kontrolujące, jak często używana jest zamiana, nazywane swappiness, opisane na stronie /unix/88693/why-is-swappiness-set-to-60-by-default .

Zamiana zera oznacza, że ​​zamiana zostanie użyta tylko wtedy, gdy w systemie zabraknie pamięci. Wymiana 100 zmusza programy do natychmiastowego użycia wymiany.

Dostosuj swój system tak, jak chcesz, ale posiadanie 128 GB pamięci RAM jest bardzo mało prawdopodobne, aby w twoim systemie łatwo zabrakło pamięci, więc posiadanie 2/4 GB wymiany może być wystarczające. Uruchomienie systemu bez partycji wymiany nie jest wskazane, ale możliwe.

Myślę, że reguła obszaru wymiany wynosząca dwukrotność pamięci RAM jest nieaktualna i jest przydatna tylko w systemach, które mają około 1 GB pamięci RAM i zawsze są na skraju pełnego wykorzystania pamięci RAM.


2
Chociaż ustawienie swappinessna 0 wydaje się logiczne przy dużej ilości pamięci RAM, może być lepiej zachować ją jako domyślną wartość 60: http://unix.stackexchange.com/a/88820/50687 .
AL

1
Czy jest jakiś wykres z zamianą od 0 do 100 na jednej osi i czymś innym na drugiej, aby pokazać, jak… zamiana zależy od wartości?
user1306322

Cześć, @jcbermu, zaktualizowałem post, jeśli jest to wygodne, sprawdź to.
wydobycie

5

Uważam, że zasada 2x jest przestarzała. Nasze stacje robocze mają 16 GB pamięci RAM, zwykle zużywamy tylko około 25% tego, a prawie nie używamy ponad 50%. Dlatego do naszych celów nie korzystamy z żadnej wymiany.

Ponieważ musisz zdecydować, ile wymiany chcesz utworzyć, i teoretycznie jest to, że dowolna liczba, którą wybierzesz, w pewnym momencie nie wystarczy, dlaczego więc nie wybrać 0? Lub - dlaczego nie po prostu zainstalować więcej pamięci RAM?

Uważam, że jest to bardzo osobista decyzja oparta na tym, jak komputer będzie używany i ile ma pamięci RAM.


Cześć, @gjcamnn, dziękuję za odpowiedź. Zaktualizowałem post, jeśli jest to wygodne, sprawdź to.
wydobycie

0

O ile nie zamierzasz wykonywać obliczeń zajmujących pamięć, w ogóle nie potrzebujesz wymiany (ale lepiej mieć małą partycję wymiany). Ale zamiana> ram jest potrzebna, jeśli zamierzasz użyć funkcji zawieszenia na dysk.


Cześć, @ustp, dziękuję za odpowiedź. Zaktualizowałem post, jeśli jest to wygodne, sprawdź to.
wydobycie
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.