Jakiego polecenia można użyć do wymuszenia zwolnienia wszystkiego z partycji wymiany z powrotem do pamięci?

12

Jakiego polecenia można użyć do wymuszenia zwolnienia wszystkiego z partycji wymiany z powrotem do pamięci?

Załóżmy, że mam dość pamięci.

stokrotka
źródło

Odpowiedzi:

19

Z tego pytania Zadaj Ubuntu :

Możesz również wyczyścić swap, uruchamiając go, swapoff -aa następnie swapon -ajako root zamiast restartu, aby osiągnąć ten sam efekt.

A zatem:

$ free -tm
...
Swap:         6439        196       6243
...
$ sudo swapoff -a
$ sudo swapon -a
$ free -tm
...
Swap:         6439          0       6439
...

Jak zauważono w komentarzu, jeśli nie masz wystarczającej ilości pamięci, swapoffspowoduje to błędy „brak pamięci” i proces zabijania jądra w celu odzyskania pamięci RAM.

Renan
źródło
3
Wyjaśniając to dalej, jeśli nie masz wystarczającej ilości pamięci RAM, swapoffwystąpią błędy braku pamięci i jądro zacznie zabijać procesy, aby je odzyskać. Używaj tego ostrożnie.
bahamat
Lepiej mieć taką nadzieję; Linux zachowuje się dość komicznie, gdy zabraknie pamięci bez aktywnej wymiany na wszystko ...
Shadur
1

Jak wspomniano, po prostu dezaktywacja wszystkich zamian spowoduje, że jądro zacznie zabijać rzeczy, jeśli nie ma wystarczającej ilości wolnej pamięci. Jeśli chcesz tego uniknąć, najpierw utwórz drugi zestaw wymiany. Następnie:

swapon /second/swap/device && swapoff /first/swap/device 
swapon /first/swap/device && swapoff /second/swap/device

To nadal będzie zamieniało się we wszystkim, ale jeśli nie będzie wystarczającej ilości miejsca, zostanie przeniesione na drugie urządzenie wymiany zamiast losowego zabijania rzeczy. Następnie po prostu cofnij wszystko do tyłu.

Perkins
źródło
0

Jednowarstwowy:

sudo bash -c 'swapoff -a && swapon -a'
karlingen
źródło