Hogyan hozzunk létre cserefájlt Linuxon

Adjon hozzá swap területet egy Linux számítógéphez, vagy növelje a már meglévő csereterületet anélkül, hogy a partíciókkal bajlódna. Megmutatjuk a csereterület testreszabásának egyszerű módját.

Fájlok cseréje vs. Partíciócsere

Számos forgatókönyv létezik, amikor érdemes lehet növelni a meglévő vagy új swap területet Linux számítógépén.

Lehet, hogy a csereterületed gyakran maximumon vagy a maximum közelében fut.
Könnyű rossz lehetőségre kattintani a telepítési folyamat során, és megtagadni a swap véletlen hozzáadását a rendszerhez.
Lehet, hogy korábban úgy döntöttél, hogy ennyi mindened van véletlen hozzáférésű memória (RAM) nem volt szüksége cserére, és meggondolta magát.
Néha egy olyan rendszer adminisztrációját örökli, amelyen nincs csere, olyan okokból, amelyeket soha nem fog tudni felfedezni.

Mindezekre az egyszerű megoldás, ha hozzáadjuk a cserélje ki a fájlt a számítógépére. Ez egy speciális fájl, előre lefoglalva és csereterületként való használatra fenntartva. A swap fájl együtt fog működni bármely meglévő cserefájllal, legyen az swap fájl vagy swap partíció.

Egy időben a swap fájl használata a swap partícióhoz képest teljesítménybeli sikereket ért el. Ez már nem így van a mechanikus (pörgő) merevlemezek teljesítményének javításával és a Linux operációs rendszeren belüli cserefunkciók nagyobb hatékonyságával. Valójában egyes Linux disztribúciók alapértelmezés szerint swap fájlokat hoznak létre, nem pedig cserepartíciókat.

A Swap nem csak a RAM felszabadítására szolgál, ha fogy a memória. Ez egy jól működő rendszer fontos része. Swap nélkül az értelmes memóriakezelést nagyon nehéz elérni a kernel számára. Nézzük meg a csereterület hozzáadásának egyszerű módját.

Mielőtt belemerülnénk: Btrf-ek és SSD-k

Két pontot szeretnénk gyorsan megvitatni.

A Btrfs fájlrendszer bizonyos figyelmeztetéseket tartalmaz a swap fájlokkal kapcsolatban. Egy időben konfliktus volt a között másolás-írás A Btrfs természete, amely egy módon akart működni, és más módon akart fájlokat cserélni, amelyeknek működniük kellett. Egyes funkciók, amelyektől a fájlok cseréje függ, nem valósultak meg, és a swap fájlokon belüli blokkszámozással kapcsolatos feltételezések nem feleltek meg a Btrfs-nek. Tehát a cserefájlok nem támogatottak.

A kernel 5.0 óta te lehetnek cserefájlok a Btrfs fájlrendszerekben ha a következő követelményeknek megfelelően vannak beállítva:

Nincsenek másolás-írásra (NOCOW) fájlok.
Nincsenek tömörítve.
Nem rakják szét a különböző merevlemezeket.

A legtöbb olvasó az alapértelmezett ext4 fájlrendszert fogja használni, így ez nem okoz gondot számukra.

Amikor a szilárdtest-meghajtók (SSD-k) először elérhetők voltak, aggodalomra ad okot, hogy olyan helyzetekben használják őket, amikor gyakran kellett fájlrendszert írni. Az embereket figyelmeztették, hogy ne helyezzenek csereterületet az SSD-kre, és még azt is, hogy kerüljék a rendszernaplózást az SSD-kre.

  Egyszerűen hozhat létre és szerkeszthet ikonokat Windowson a Junior Icon Editor segítségével

Ez manapság sokkal kevésbé aggodalomra ad okot, és sok értékesítésre kerülő SSD várható élettartama meghaladja a legtöbb PC-t. Az SSD-n lévő cserefájl sokkal jobb teljesítményt nyújt, mint a mechanikus merevlemez cserepartíciója.

Meglévő csereterület ellenőrzése

Gondold át. Nézzük meg, milyen csereterület áll rendelkezésre a számítógépén. Ezt kétféleképpen teheti meg, mi pedig mindkettőt használjuk. A szabad parancs megjeleníti a felhasznált és szabad memóriát. A -h (ember által olvasható) opció szabadon használható értelmes mértékegységeket tesz lehetővé, amikor megjeleníti a memóriaértékeket.

free -h

Az ingyenes kimenet azt mutatja, hogy ezen a gépen nincs konfigurálva swap terület.

A cseréről soha nem beszélnek RAM és szabad RAM nélkül. Érdemes tehát megjegyezni, hogy az ingyenes RAM 237 MB-ban van megadva. Ne tévessze össze ezt a használható teljes RAM-mal. Ezt az értéket az „elérhető” adat adja, ami 881 MB.

A Linux ingyenes RAM-ot használ saját céljaira, például fájlok gyorsítótárazására és kernelpufferekre. Az erre szánt RAM mennyisége a „buff/cache” érték, ami 871 MB. De ezt az emléket továbbra is „rendelkezésre állónak” tekintik – és annak számítják. A „buf/cache” RAM tartalma azonnal eldobható, és bármilyen memóriát igénylő alkalmazás felhasználható.

Egy másik módja annak, hogy ellenőrizze, van-e szabad csereterület, a swapon parancs használata. A –show opció nem tesz semmit a swap módosításai a számítógépen. Csak statisztikákkal szolgál.

swapon --show

Ha nincs kimenet ebből a parancsból, akkor nincs swap konfigurálva.

Ha ezek a parancsok azt mutatták, hogy bizonyos swap terület már be van állítva, akkor a meglévő csereterület méretét figyelembe kell venni a létrehozandó swap fájl méretével kapcsolatos döntéseknél.

Mennyi csereterületre van szükségem?

A hagyományos válasz az volt, hogy „a RAM-mennyiség kétszerese”. De ezt akkor találták ki, amikor a számítógépek nagyon korlátozott RAM-mal rendelkeztek. Mivel a RAM olcsóbb lett, a programok és játékok pedig egyre több memóriát igényelnek, a PC specifikációi ennek megfelelően módosultak. A 32 GB RAM-mal rendelkező otthoni PC-k manapság nem ritkák. És nem fog 64 GB merevlemez-területet lefoglalni a csereterülethez, ha 32 GB RAM-mal rendelkezik. Ez egyértelműen túlzás.

A szükséges cseremennyiség gyújtós téma, hasonló ahhoz, hogy „melyik a legjobb szerkesztő”. Az egyik legésszerűbb megbeszélés, amelyet ebben a témában láttunk, a Ubuntu csere GYIK. Ez egy rövid és közérthető megközelítés (bár sok emberhez hasonlóan ők is félreértik, hogyan működik a cserelehetőség Linuxon). Van egy praktikus táblázat, amely megmutatja a rendszerben lévő RAM mennyiségének megfelelő csereterület ajánlott mennyiségét, valamint azt, hogy hibernálja-e a számítógépet vagy sem.

És a jó hír az, hogy teljesen mindegy, milyen értéket választasz. A cserefájlt mindig eltávolíthatjuk, és lecserélhetjük egy nagyobbra, vagy ami azt illeti, egy kisebbre. Vagy egyszerűen hozzáadhat egy másik cserefájlt.

  Hogyan ne legyen nyitva 100 böngészőlap

Szed a swap fájl mérete a táblázatból, és futtassa egy ideig. Figyelje, hogy a rendszer hogyan használja a swap területet. Ha finomhangolásra van szükség, a változtatások könnyen elvégezhetők. Swap fájlokkal ez egy kétperces munka. Hasonlítsa össze ezt a partíciók beállításával egy élő Linux számítógépen.

Cserefájl létrehozása

Ne használja a fallocate parancsot a cserefájl létrehozásához. Ez a swapon man oldaláról van:

The swap file implementation in the kernel expects to be able to write to
the file directly, without the assistance of the file system. 

This is a problem on files with holes or on copy-on-write files on file 
systems like Btrfs. Commands like cp(1) or truncate(1) create files with 
holes. These files will be rejected by swapon. 

Preallocated files created by fallocate(1) may be interpreted as files 
with holes too depending of the filesystem. Preallocated swap files are 
supported on XFS since Linux 4.18. 

The most portable solution to create a swap file is to use dd(1) and 
/dev/zero.

Tehát, bár a fallocate gyorsabb, a dd to-t használjuk hozza létre a swap fájlt. A cikk kutatására használt gép két GB RAM-mal rendelkezik. Létre fogunk hozni egy 1 GB swap fájlt.

A lehetőségek a következők:

if: A bemeneti fájl. Ebben a példában a /dev/zero fájlt használjuk, amely nulla bájtos adatfolyamot biztosít.
/: A kimeneti fájl. Létre fogunk hozni egy fájlt a gyökérkönyvtárban, swapfile néven.
bs: A blokk mérete bájtokban. Ez adja meg, hogy egyszerre hány bájtot kell kiolvasni a bemeneti fájlból és írni a kimeneti fájlba.
count: Hány blokkot kell olvasni és írni. A fájl méretének kiszámításához ezt a számot megszorozzuk a bs értékkel.

sudo dd if=/dev/zero of=/swapfile bs=1024 count=1048576

Néhány statisztikai adat a fájl létrehozásakor jelenik meg.

Láthatjuk a fájlba írt blokkok (rekordok) számát, a fájl méretét, a fájl létrehozásához szükséges időt és az effektív adatátviteli sebességet.

Használja az ls parancsot a fájl megtekintéséhez a gyökérkönyvtárban:

ls /

A Swap fájl előkészítése

muszáj készítse elő a swap fájlt az mkswap paranccsal, mielőtt felhasználná. Nem kell más paramétert megadnunk az mkswap számára, mint a fájl elérési útja és neve:

sudo mkswap /swapfile

A fájl cserefájlként való használatra készült. Vegye figyelembe a fájlengedélyekre vonatkozó figyelmeztetést. Ezeket úgy kell módosítanunk, hogy a root felhasználó legyen az egyetlen, aki olvasni és írni tud a swap fájlba.

A Swap fájl használata

Az alapértelmezett engedélyek túl liberálisak, korlátoznunk kell őket, hogy csak a root használhassa a cserefájlt. A chmod segítségével módosítsa a fájlengedélyeket:

sudo chmod 600 /swapfile

Ez eltávolítja az összes engedélyt a fájlcsoport tagjaitól és másoktól, de lehetővé teszi a fájl tulajdonosának, a root számára, hogy olvassa és írjon a fájlt.

Használnunk kell a swapon parancsot, hogy a Linux tudja, hogy egy új cserefájl áll rendelkezésre. Csak az elérési utat és a fájlnevet kell megadnunk:

sudo swapon /swapfile

A cserefájl most aktív.

  A Gmail blokkolása az Outlook bejelentkezési kísérleteinek kijavítása

A Swap fájl hozzáadása az fstab-hoz

Annak érdekében, hogy a cserefájl elérhető legyen az újraindítás után, adja hozzá az /etc/fstab fájlhoz. Bármilyen szövegszerkesztőt használhat, de mi a folyamatot a grafikus Gedit szövegszerkesztővel mutatjuk be.

sudo gedit /etc/fstab

A következő sort kell hozzáadnunk a fájl aljához:

/swapfile    none    swap    sw    0    0

A mezők a következők:

Fájlrendszer: A cserefájl elérési útja és neve.
Csatlakozási pont: A fájl nem úgy van csatlakoztatva, mint egy fájlrendszer, ezért a bejegyzés „nincs”.
Típus: Ez a „csere”.
Opciók: Indításkor a swapon -a (minden csereként megjelölt eszköz elindítása) meg lesz hívva az egyik rendszerindító szkriptből. Ez a beállítás arra utasítja a Linuxot, hogy ezt a bejegyzést swap erőforrásként kezelje, amelynek a swapon -a parancs irányítása alá kell tartoznia. Gyakran előfordul, hogy itt „alapértelmezett” értékeket használnak, mert egyes Linux-felhasználók tévesen úgy vélik, hogy ezt a mezőt figyelmen kívül hagyják. Mint látni fogjuk, ez nem így van. Tehát érdemes a megfelelő opciót használni.
Dump: Ez nullára állítható. Jelen esetben lényegtelen.
Pass: Ez nullára állítható. Jelen esetben lényegtelen.

Mentse el a változtatásokat, és zárja be a szerkesztőt.

Cserehasználat ellenőrzése

Ha meg szeretné nézni, hogy a csereterület használatban van-e, használja a swapon parancsot a –show kapcsolóval:

swapon --show

Az oszlopok a következők:

Név: A swap partíció vagy swap fájl neve.
Típus: A csereeszköz típusa.
Méret: A csereerőforrás mérete.
Használt: A felhasznált csereterület mennyisége.
Prio: Ennek a csereterületnek a prioritása.

A csereterület prioritása

Minden csereterület prioritást kap. Ha nem ad meg egyet, a rendszer automatikusan kioszt egyet. Az automatikusan kiosztott prioritások mindig negatívak. A manuálisan kiosztható prioritások tartománya 0-tól 32767-ig terjed. Először a magasabb prioritású erőforrásokat használja a rendszer.

Ha egynél több csereterületnek ugyanaz a prioritása, felváltva használják őket, amíg mindkettő meg nem telik, akkor a rendszer a következő legalacsonyabb prioritású csereterületet keresi. Ha csak egyetlen csereterületed van, akkor a prioritás természetesen lényegtelen. De megváltoztatjuk az általunk létrehozott swapfájl prioritását, hogy bemutassuk, hogyan kell csinálni.

A prioritás beállításához adja hozzá a pri= (priority) paramétert az /etc/fstab bejegyzéshez. Szerkessze az /etc/fstab fájlhoz hozzáadott sort, hogy így nézzen ki:

/swapfile    none    swap    sw,pri=10    0    0

Vagyis adja hozzá a pri=10 értéket a beállítások mezőhöz, vesszővel elválasztva az „sw”-től. Ne hagyjon szóközt az „sw”, a vessző és a „pri=10” között. Indítsa újra a számítógépet, és használja a swapon –show parancsot:

swapon -- show

Ennek a swap területnek a prioritása 10-re emelkedett. Ami azt bizonyítja, hogy az /etc/fstab bejegyzés beállítási mezőjét nem hagyja figyelmen kívül.

Swap Space Made Easy

A kifejtést és a magyarázatot átvágva olyan egyszerűen és gyorsan készíthetünk új swap fájlt, mint ez:

sudo dd if=/dev/zero /of=/swapfile2 bs=1024 count=104857
sudo mkswap /swapfile2
sudo chmod 600 /swapfile2
sudo swapon /swapfile2

És nézzük meg, hogy működött-e:

swapon --show

Ha véglegesen el akarja dobni, akkor az /etc/fstab fájlba.

Bumm. Elvégzett munka.