A virtuális memória egyike azoknak a dolgoknak, amelyek a modern operációs rendszerek alapját képezik, de általában nem gondolunk rá, hacsak nincs probléma. A Linux disztribúciók megkérik, hogy állítsa be a virtuális memóriaterületet (swap partíciókat) a telepítés során, de a legtöbb kezdő nem tudja, hogy ez mennyire hasznos.
Itt van minden, amit a Linux virtuális memóriájáról tudnia kell.
Mi az a virtuális memória?
A virtuális memória a memória megjelenítésének módja, amely elvonatkoztatott a számítógép fizikai memóriájától. Kihasználja a RAM-ot és a tárhelyet is, legyen szó hagyományos merevlemezről vagy SSD-ről.
Linuxban ez kernel és hardver szinten történik. A CPU-nak van egy memóriakezelő egysége (MMU), amely a fizikai memóriacímeket virtuális címekre fordítja. Ezek a címek függetlenek attól, hogy fizikailag hol találhatók a gépen. Ezeket a címtereket "oldalnak" nevezik, és lehetnek a RAM-ban vagy a merevlemezen vagy az SSD-n. Az operációs rendszer ezeket a címeket egy nagy memóriatárnak tekinti, amelyet "címterületnek" neveznek.
A virtuális memória kihasználja azt a tényt, hogy az elméletileg használt memória nem egészét használja folyamatosan. A memóriában lévő programokat lapokra bontják, és a kernel által szükségtelennek ítélt részeket "kicserélik", vagy áthelyezik a merevlemezre. Amikor szükség van rájuk, „becserélhetők”, vagy visszahelyezhetők a RAM-ba.
A meghajtón a virtuális memóriához használt területet „háttértárnak” vagy „csereterületnek” nevezik. A Windows világában igen általában fájlként, úgynevezett "cserefájlként" valósítják meg. Ezt Linux alatt is meg lehet csinálni, de ez sokkal gyakoribb nak nek használjon dedikált lemezpartíciót.
A Linuxon található cserefájlok általában minimális vagy beágyazott rendszerek számára vannak fenntartva, és ez utóbbiak esetében gyakran előfordul, hogy teljesen virtuális memória nélkül futnak, mivel a beágyazott operációs rendszereknek kicsiknek kell lenniük.
A virtuális memória eredménye az, hogy nagy programok futtathatók, ha több memóriát használunk, mint a fizikai RAM. a gépe, hasonlóan ahhoz, ahogy a hitelkártya lehetővé teszi, hogy nagyobb vásárlásokat bonyolítson le több pénzért, mint amennyi a bankjában van fiókot. A hitelkártyákhoz hasonlóan a virtuális memória akkor hasznos, ha szüksége van rá, de nem akarja túlterhelni a használatát.
A virtuális memória azt is lehetővé teszi a fejlesztők számára, hogy alkalmazásokat hozzanak létre anélkül, hogy tudnák, hogyan szerveződik a számítógép memóriája.
A virtuális memória történetének fő hátránya az volt, hogy a merevlemezek lassabbak, mint a RAM. Ha egy gépnek nincs elég RAM-ja, a rendszer folyamatosan cserélgetheti az oldalakat a végtelenségig, ezt a folyamatot „cséplésnek” nevezik. Ez kevésbé probléma a modern PC-knél, amelyek több RAM-mal és gyorsabb SSD-kkel helyettesítik a mechanikus merevlemezeket, de ennek ellenére tudnia kell nak,-nek.
Linux Swap partíciók
Mint korábban említettük, a virtuális memória beállításának szokásos módja Linuxon egy dedikált lemezpartíció használata. A telepítő segédprogram megvizsgálja a hardvert, és egy swap partíciót tartalmazó particionálási sémát javasol.
A telepítés után swap partíciókat is hozzáadhat. Ha új partíciót szeretne hozzáadni egy meglévő meghajtóhoz, akkor ezt meg kell tennie használjon roncsolásmentes particionáló eszközt mint a GParted. Győződjön meg arról, hogy a "Linux csere" fájlrendszert választotta a partícióhoz.
A meghajtó újraparticionálása előtt készítsen biztonsági másolatot a fontos adatokról.
A partíció létrehozása után használja az mkswap parancsot a partíció formázásához.
sudo mkswap /dev/sdX
Most szerkesztenie kell a sajátját /etc/fstab rootként a swap partíció hozzáadásához. Ez a fájlhoz hozzáadott sor beállít egy swap partíciót, amelyet rendszerindításkor kell csatolni:
/dev/sdX nincs csere alapértelmezett 0 0
Most használja a csere parancs az új swap terület aktiválásához, ahol az sdX a swap partíció neve:
sudo swapon /dev/sdX
Swap Files használata Linuxon
Könnyű állítson be egy swap fájlt Linuxban a parancssor segítségével. Ezt akkor érdemes megtenni, ha nem szeretné a meghajtó újraparticionálásával vagy szerkesztésével bajlódni /etc/fstab. Az egyik módszer a használata bukdácsolni:
Például 2 GB-os cserefájl létrehozásához:
sudo fallocate -l 2G /elérési út/a/cserefájlhoz
Alternatív megoldásként a dd paranccsal is létrehozhatja a swap fájlt.
sudo dd ha=/dev/nulla nak,-nek=/path/to/swapfile bs=1024 count=2048
Győződjön meg arról, hogy helyesen használja a dd parancsot, mivel az infile és az outfile helytelen leolvasása adatvesztést okozhat. emiatt a fallocate a preferált módszer.
Az /dev/zero Az eszköz egy speciális eszköz, amely "0"-t ad ki. Ez a dd parancs egy üres két gigabájtos blokkfájlt hoz létre 1024 kilobájtos blokkokkal, amelyek alkalmasak csereterületként való használatra.
Ezután használhatja a mkswap és csere parancsokat a swap fájllal, ahogyan azt a swap partícióval tenné:
sudo mkswap /path/to/swapfile
sudo swapon /path/to/swapfile
Felmerülhet a kérdés, hogy mikor érdemes swap fájlt vagy dedikált partíciót használni a csereterülethez. A választás egyszerű: a legtöbb esetben partíciót kell használnia. Ez a legjobb választás Linux asztali számítógépekhez vagy szerverekhez. A telepítő által javasolt partíciós séma általában megfelelő egyfelhasználós Linux asztalon.
Érdemes lehet swap fájlt használni, ha virtuális gépen, kis beágyazott rendszeren futtatja a Linuxot, vagy egyszerűen nem szeretné újraparticionálni meglévő Linux rendszerét.
Mennyi csereterület?
Sok éven át a szokásos tanács arra vonatkozóan, hogy mekkora swap területre van szükség, kétszerese a fizikai RAM-nak. A nagy meghajtók és a memória mennyisége miatt, amelyet még a legolcsóbb PC-k is tartalmaznak, ez a szabály megkérdőjelezhető.
Sok rendszeren, ha bejelöli a top vagy a htop elemet, még azt is észreveheti, hogy a swap területet egyáltalán nem használja, ha így állítja be a rendszert.
Ennek ellenére a fizikai memória kétszerese jó kiindulópont és biztosítási kötvény, ha nagyobb követelményeket támaszt a memóriával szemben. Szükség szerint módosíthatja a rendszert. Ha a rendszer az összes RAM-ot használja, a számítógép teljesítményproblémákba ütközhet a virtuális memória használatakor.
A számítógép folyamatosan be- és ki tud cserélni, ezt a folyamatot csépelésnek nevezik, így úgy tűnik, hogy nem reagál. Ha még mindig van mechanikus merevlemeze, gyakran hallja, hogy folyamatosan hozzáfér.
Ez manapság sokkal kevésbé probléma, mivel a RAM mennyisége még a legolcsóbb PC-ken is több mint megfelelő, ráadásul az SSD-k sebessége is sokkal gyorsabb, mint a régi merevlemezeké. Ez még mindig valami, amivel tisztában kell lennie.
A legegyszerűbb módja annak, hogy ezt megjavítsuk, ha több RAM-ot adunk a géphez. Ha ez nem lehetséges, akkor megpróbálhatja beállítani a Linux kernel "cseréjét".
A csereszám határozza meg, hogy a kernel mennyit merül a virtuális memóriába. 0 és 100 között mozog. A 0-ra állítás azt jelenti, hogy a Linux egyáltalán nem cserél, míg 100-nál minden alkalommal cserél. A legtöbb rendszeren az alapértelmezett 60.
A felcserélhetőség ideiglenes megváltoztatásához használja a sysctl parancsot:
sudo sysctl vm.swappiness=20
A „20” ebben a parancsban a csereszám lesz az újraindításig. A végleges módosításhoz szerkessze a /etc/sysctl.conf fájl gyökérként, és helyezze el a "vm.swappiness=[csereszám]" sort, ahol a "[csereszám]" a kívánt csereszám. Ez szünet lesz, amíg nem tud több RAM-ot telepíteni.
A virtuális memória biztosítja a Linux rendszer zökkenőmentes működését
A virtuális memória a modern operációs rendszerek, köztük a Linux egyik összetevője, amely biztosítja a számítógép zökkenőmentes működését. Használhat swap fájlt, de a szokásos módszer egy dedikált partíció. Nem kell sokat gondolkozni rajta, de a Linux swap partíciói és swap fájlok könnyen beállíthatók és hibaelhárítással megoldhatók.
E tanácsok nagy része más rendszerekre is alkalmazható, beleértve a Windowst, még akkor is, ha a virtuális memória beállításának módjai eltérőek.