Dynamicznie rosnący plik wymiany w Debianie

10

Wiem, jak utworzyć plik wymiany i używać go jako wymiany. Ale muszę wcześniej skonfigurować rozmiar pliku, a miejsce na dysku jest używane, jeśli zamiana jest używana, czy nie.

Jak utworzyć swap, który ma początkowy rozmiar 0 i rośnie na żądanie?

rubo77
źródło
@Gilles: Jestem ciekawy - dlaczego edytowałeś tytuł (oprócz literówki)? Czyż nie jest pożądane, aby mieć tutaj w pełni zadane pytania?
rubo77
1
Lepiej unikać niepotrzebnych słów, szczególnie na początku tytułu, na którym ludzie zwracają największą uwagę. Zobacz Jak napisać dobry tytuł? . „Dynamicznie rosnąca zamiana” daje niezbędny pomysł. „Jak stworzyć” nie zaczyna wskazywać, o co chodzi w pytaniu. Są ludzie, którzy wolą zadawać pytania w tytułach, ponieważ są to pytania, ale to głupi powód: tytuł jest także tytułem odpowiedzi.
Gilles „SO- przestań być zły”

Odpowiedzi:

3

Swapspace jest stary i nieobsługiwany i może kiedyś doprowadzić do problemów we współczesnych systemach. Myślę, że najlepszym rozwiązaniem dla dynamicznej wymiany jest:

sudo apt install dphys-swapfile
sudo update-rc.d dphys-swapfile enable

następnie ustawienie CONF_SWAPFACTOR=2się /etc/dphys-swapfilewreszcie

sudo service dphys-swapfile start
Denis Pitzalis
źródło
Działa to, ale należy pamiętać, że lepiej byłoby bez wymiany, patrz unix.stackexchange.com/a/136133/20661
rubo77
10

SwapSpace to narzędzie, które tworzy „dynamiczny plik wymiany”, który zgodnie z wymaganiami systemu operacyjnego zmienia swój rozmiar.

Możesz więc nawet zapomnieć o utworzeniu wirtualnego pliku wymiany i po prostu zainstalować „SwapSpace”, a on automatycznie utworzy plik dla Ciebie, a nawet zmieni jego rozmiar, jeśli to konieczne.

Możesz także użyć opcji „Swapspace” obok ręcznie utworzonego pliku wymiany, a gdy ręcznie zostanie wypełniony, „Swapspace” automatycznie utworzy inny dla systemu operacyjnego, więc system operacyjny zawsze będzie miał przestrzeń wymiany i zwiększy stabilność.

Kolejną przydatną rzeczą w „SwapSpace” jest to, że w miarę możliwości zmniejsza rozmiar SwapSpace i „uwalnia” te bajty do systemu plików użytkownika, a według twórców redukcja ta pomaga również zwiększyć wydajność pliku wymiany ( plus nie marnuje się także „cenna” przestrzeń dysku twardego).

Zainstaluj za pomocą

sudo apt-get install swapspace

I dostosuj plik konfiguracyjny do swoich potrzeb. Ustawiłem minimum 0na moim maszynie debian VM z zaledwie 8 GB HDD


Dodatkowo ustawiłem zamianę, aby 0zminimalizować wykorzystanie cennego miejsca na dysku twardym na mojej maszynie wirtualnej:

Aby zmienić wartość swapiness systemu, otwórz /etc/sysctl.confjako root. Następnie zmień lub dodaj ten wiersz do pliku:

vm.swappiness = 0

(Uruchom ponownie, aby zmiana zaczęła obowiązywać)

rubo77
źródło
Nie będzie to obsługiwać pliku swsusp / suspender to swap, chyba że rozmiar utworzonego pliku wymiany jest już wystarczająco duży, aby pomieścić zrzut pamięci RAM.
soze
Jak więc upewnić się, że plik wymiany jest wystarczająco duży, aby pomieścić ram?
rubo77
Posiadaj jeden plik wymiany o stałym rozmiarze wielkości pamięci RAM do zawieszenia, a następnie użyj swapspace do wymiany o dynamicznym rozmiarze
Tom Hale
To zadziałało dla mnie. Jest to bardzo przydatne w przypadku małych dysków SSD.
Adrian Lopez
0

Afaik, każda partycja wymiany, którą utworzyłbyś na przykład za pomocą fdisk, potrzebowałaby więcej miejsca niż 0, ponieważ modyfikujesz przestrzeń z istniejącego dysku i przenosisz go w inne miejsce.

W każdym razie, odpowiadając na twoje pytanie, możesz łatwo zrobić małą partycję, przypisać ją jako swap pod fdisk, a następnie:

1) wyłącz zamianę za pomocą swapoff -v 2) zmień rozmiar partycji za pomocą lvresize 3) sformatuj partycję za pomocą mkswap 4) ponownie włącz przestrzeń wymiany za pomocąswapon -v

Następnie możesz użyć, cat /proc/swapsaby sprawdzić, czy został zaktualizowany, czy nie. Możesz łatwo użyć tego w skrypcie, w zależności od specyfikacji systemu, i uruchamiać go na żądanie, ilekroć zajdzie potrzeba zwiększenia przestrzeni wymiany. Coś jak:

$ swapoff -v /dev/swapvol1
$ lvresize /dev/swapvol1 -L +1G
$ mkswap /dev/swapvol1
$ swapon -v /dev/swapvol1
Aleksander Ksenia
źródło
1
To nie odpowiada na pytanie, ponieważ rozmiar wymiany jest zmieniany ręcznie, a nie na żądanie. Co więcej, zmiana rozmiaru LV nie jest użyteczna: gdzie znajdujesz przestrzeń do rozwoju? w jaki sposób uwolniona przestrzeń na kurczenie się nie jest marnowana? Pytanie dotyczy pliku wymiany, który rozwiązuje problem wolnego miejsca - jest on dostępny dla innych plików.
Gilles „SO- przestań być zły”
Zmiana rozmiaru wymiany na żądanie jest dobrym pomysłem, ale swapspace nie obejmuje scenariusza użycia swsusp do wspierania hibernacji. Uważam, że ta odpowiedź może być bardziej rozsądna dla tych użytkowników, którzy potrzebują wsparcia w hibernacji. Oczywiście dopóki Swapspace nie poradzi sobie z tym lepiej.
soze