Nie mogę sobie wyobrazić, dlaczego plik wymiany musi mieć stały rozmiar. Dlaczego nie pozwolić, aby zmienił się dynamicznie, podobnie jak plik obrazu dysku twardego dla wirtualnego urządzenia?
Nie mogę sobie wyobrazić, dlaczego plik wymiany musi mieć stały rozmiar. Dlaczego nie pozwolić, aby zmienił się dynamicznie, podobnie jak plik obrazu dysku twardego dla wirtualnego urządzenia?
Odpowiedzi:
Nie wygląda na to, że Linux obsługuje dynamiczne zmiany rozmiaru pliku wymiany (w każdym razie nie mogłem go wykryć, że rozmiar pliku wymiany zmienił się bez znaku swapoff
/ swapon
).
Przypuszczalnie łatwiej jest założyć, że plik wymiany nie zmienia dynamicznie rozmiaru pliku podczas pisania kodu do jego obsługi. Nie widzę też w tym wielkiego zastosowania. Ponieważ możesz używać wielu plików wymiany, nic nie stoi na przeszkodzie, aby utworzyć więcej plików wymiany w razie potrzeby.
Zwróć także uwagę na ten akapit ze strony swapon
podręcznika :
The swap file implementation in the kernel expects to be able to write
to the file directly, without the assistance of the filesystem. This
is a problem on preallocated files (e.g. fallocate(1)) on filesystems
like XFS or ext4, and on copy-on-write filesystems like btrfs.
Sądzę, że ten sam problem dotyczyłby pliku wymiany o dynamicznym rozmiarze.
SwapSpace to narzędzie, które pozwoli ci na dynamiczne zamiany, jeśli tego właśnie szukasz. Wierzę, że jest dostępny w Ubuntu.
Wiem, że jest późno, ale 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=2
się /etc/dphys-swapfile
wreszcie
sudo service dphys-swapfile start
Przestrzeń wymiany można dodać do działającego systemu za pomocą swapon
polecenia. Potrzebuje istniejącego (nieużywanego) pliku wymiany / partycji. Aby go utworzyć, użyj dd
polecenia, aby przydzielić ciągły plik, a następnie mkswap
dodać poprawne informacje sterujące do pliku / partycji.
Aby usunąć plik wymiany, użyj swapoff
; plik można następnie usunąć.
Podejrzewam, że to właśnie SwapSpace
robi dmemon wspomniany przez @ user231695.
Zauważ, że zamiana może być powolną operacją, jeśli plik wymiany jest używany; wszystkie dane należy przenieść do innego obszaru wymiany.