Első rész. A Szóköz cseréje
A megfelelő működés érdekében a számítógép a megfelelő memória mennyiségétől függ. Egyszerűen azt mondva, hogy soha nem lehet elég. Minél több fizikai memória van telepítve, annál költségesebb. Az eredmény okos kompromisszum a memória cellákhoz való hozzáférés költségei és sebessége között.
A kompromisszum elérése érdekében a UNIX / Linux rendszerek kétféle memóriát kombinálnak - fizikai memóriát (RAM) és helyet cserélnek. Összességében ezt hívják egy számítástechnikai rendszer virtuális memóriájának. A fizikai memória meglehetősen drága, de gyors és nanoszekundumon belül elérhető. Ezzel szemben a csere memória meglehetősen olcsó, de lassú és milliszekundumon belül elérhető.
Néhány oka van annak, hogy a csere memória hasznos. Először is, néha az egyes folyamatoknak több memóriára van szükségük, mint amennyit a rendszer fizikailag birtokol, és többet tudnak biztosítani az azt igénylő folyamatok számára. Ennek eredményeként a fizikai memóriában tárolt összes adat nem tárolható tovább ott. Most a cserefelület jön szóba, és a memóriaoldalak egy része átkerül a cserefelületbe a fizikai memória felszabadítása érdekében.
Másodszor, nem minden adatra van szükség a memóriában egyszerre. Éppen ezért a kevésbé használt memóriaoldalak a cserehelyen vannak parkolva, hogy a lehető legtöbb szabad fizikai memória álljon rendelkezésre. Ezt a módszert a legkevésbé használt oldalcsere-algoritmusnak (LRU) nevezik [1].
A csere típusai
A cserehely két változatban létezik. Az 1. verzió egy különálló lemezpartíció, az úgynevezett swappartíció. Az adott partíción nincsenek fájlok tárolva, de a memória információi (dumpok). Egyszerűen a 2. verzió a lemezen található fájl, amely a merevlemez fájlrendszerében található. Az 1. verzió nagyon gyakori a UNIX / Linux, a BSD és az OS X rendszerekben, míg a 2. verzió a Microsoft Windows rendszert futtató rendszereken létezik. A 2. verzió UNIX / Linux rendszereken is engedélyezhető (lásd alább).
Annak megtekintéséhez, hogy melyik cserehely aktív az UNIX / Linux rendszeren, futtassa a következő parancsot egy terminálon:
$ / sbin / swapon -sFájlnév típusa Méret Elsőbbség
/ dev / dm-3 partíció 16150524 316484 -1
$
Alternatív megoldásként küldhet egy kérést a proc fájlrendszernek, és futtathatja a cat / proc / swaps parancsot
Ennek a Linux rendszernek van egy kb. 15 GB méretű swap partíciója, amelyben jelenleg több mint 300 milliót használnak. A Prioritás oszlop megmutatja, hogy melyik csere helyet használja először. Az alapértelmezett érték -1. Minél magasabb a prioritás értéke, annál korábban veszik figyelembe ezt a cserefelületet. Az -s opció a -summary rövid verziója. Ez az opció elavult, és ajánlott a -show opciót a következőképpen használni:
$ / sbin / swapon --show = Név, TÍPUS, MÉRET, HASZNÁLT, PRIONÉV TÍPUS MÉRET HASZNÁLT PRIO
/ dev / dm-3 partíció 15,4G 307,1M -1
$
A -show opció elfogadja az oszlopfejléceket képviselő értékek listáját. Egy adott kimeneti sorrend elérése érdekében válassza ki a kívánt oszlopfejléceket és azok sorrendjét.
Csere mérete
Általános szabály, hogy a cseretér nagysága kétszer akkora, mint a rendszer fizikai memóriája. Ezt tartsa szem előtt az általános célú telepítéseknél és az asztali gépeknél. Sokkal több fizikai memóriával rendelkező UNIX / Linux szerverek esetén csökkentheti a cseretér méretét a RAM 50% -ára. A hibernálni képes laptopoknak valamivel nagyobbaknak kell lenniük, mint a fizikai memória.
Telepítés
Cserepartíció esetén ajánlatos a lemezterület felosztása a lemez egy partícióra bontásának kezdetétől, vagy hagyni annyi fel nem használt lemezterületet, hogy később, végül. Általában a használandó lemezek konfigurálása során a beállítási rutin megkérdezi a cseretér nagyságáról. Például a Debian GNU / Linux rendszeren ez a következőképpen néz ki:
Amint fent említettük, mindaddig, amíg van hely új partíciókra a merevlemezen, létrehozhat és felvehet cserepartíciókat az fdisk és a swapon parancsok használatával.
Alternatív megoldásként a cserefelület később is engedélyezhető swap fájlként. A Linux támogatja ezt a módot, így létrehozhatja, előkészítheti és felcserélheti a cserepartícióhoz hasonló módon. Ennek a módnak az az előnye, hogy nem szükséges újraparticionálnia egy lemezt, hogy további csere helyet biztosítson.
Példaként létrehozunk egy / swapfile nevű fájlt, amelynek mérete 512M, és ezt további cserehelyként engedélyezzük. Először a dd parancs segítségével hozunk létre egy üres fájlt. Másodszor, az mkswap ezt a fájlt használja, hogy átalakítsa swap stílusra. Észreveheti, hogy a fájl tartalmát partícióként kezelik, és a megfelelő UUID-t hozzárendelik. Harmadszor, ezt a swapon segítségével engedélyezzük. Végül a swapon -show parancs két swap bejegyzést jelenít meg - egy partíciót és az újonnan létrehozott fájlt.
# dd, ha = / dev / nulla = / swapfile bs = 1024 szám = 524288524288 + 0 adatkészlet
524288 + 0 adatkészlet
536870912 bájt (537 MB) másolva, 0,887744 s, 605 MB / s
# mkswap / swapfile
Az 1. swapspace verzió beállítása, méret = 524284 KiB
nincs címke, UUID = e47ab7fe-5efc-4175-b287-d0e83bc10f2e
# swapon / swapfile
# swapon --show = NÉV, TÍPUS, MÉRET, HASZNÁLT, PRIO
NÉV TÍPUS MÉRET HASZNÁLT PRIO
/ dev / dm-3 partíció 15,4G 288,9M -1
/ swapfile fájl 512M 0B -2
#
A cserefájl indításkor történő használatához adja meg rendszergazdaként a következő sort a fájlhoz / etc / fstab:
Cserehely letiltása
Legkevésbé, de nem utoljára, van egy parancs a cserefájl letiltására. A parancs meghívásra kerül csere
. Ehhez egyetlen paraméterre van szükség, amely jelzi a csereeszköz letiltását. Ez a parancs letiltja a korábban aktivált cserefájlt:
Is, csere
tud dolgozni egy fájlrendszer UUID azonosítójával. Csinálni csere
így járj el az opció használatával -U
amelyet a megfelelő fájlrendszer UUID-je követ. Abban az esetben, ha az összes cserehelyet egyszerre kell letiltani, az opciót kell megadni -a
(long option -all) elég praktikus. A teljes parancs az swapoff -a.
A csere ökoszisztéma hangolása
A Linux kernellel kezdve kiadja a 2-es verziót.6 új értéket vezettek be. Ezt a változó tárolja / proc / sys / vm / swappiness
és ellenőrzi a futásidejű memória kicserélésének adott relatív súlyát, szemben a memóriaoldalak eldobásával a rendszeroldal gyorsítótárából [2]. Az alapértelmezett érték 60 (a szabad memória százaléka a csere aktiválása előtt). Minél alacsonyabb az érték, annál kevesebbet használ felcsere, és annál több memóriaoldalt tart a fizikai memória.
- 0: a csere le van tiltva
- 1: a csere minimális mennyisége anélkül, hogy teljesen letiltaná
- 10: ajánlott érték a teljesítmény javításához, ha elegendő memória van a rendszerben
- 100: agresszív csere
Az érték ideiglenes beállításához állítsa be az értéket a / proc fájlrendszerben az alábbiak szerint:
# echo 10> / proc / sys / vm / swappinessAlternatív megoldásként használhatja a sysctl
parancsot az alábbiak szerint:
Az érték végleges beállításához adja hozzá a következő sort a fájlhoz / etc / sysctl.konf:
A csere még mindig naprakész?
Megkérdezheti, miért foglalkozunk ezzel a témával. A modern számítógépeknek elegendő fizikai memóriájuk van - miért kell ezzel törődnünk? Néhány oka annak, hogy ez a technológia többet ér, mint egy gondolat.
Ne feledje, hogy egy ideig ragaszkodik a gépéhez, de időnként frissítheti a rajta használt szoftvert. Jelenleg a hardver és a szoftver egyaránt megfelel egymásnak. A jövőben ez változhat, és több memóriára van szüksége, mint most. Hacsak nem frissít vagy új hardvert vásárol, a Swap partíció megspórolhat egy kis pénzt.
Lehet, hogy hallott egy olyan funkcióról, amelyet felfüggesztés lemezre vagy hibernált módnak neveznek [3]. A gép aludni fog. Ezt megelőzően valahol tárolnia kell a jelenlegi állapotát. Most a cseretér játszik szerepet, és tárolóként működik ezen adatok megőrzésére. Amint a gép legközelebb felébred, a teljes adatot beolvassa a Csere térből, betölti a memóriába, és folytathatja a munkát ott, ahol korábban leállt.
Ha a rendszernek csak egy állandó tárolóeszköze van, akkor el kell olvasnia és megírnia a fájlokat, miközben ugyanazon az eszközön cserél. Óriási javulást fog tapasztalni, ha van második eszköze, és el tudja különíteni a csereeszközt az ütköző fájlhozzáféréstől.
A cserefájlnak át kell adnia az adatokat a fájlrendszeren keresztül. Ez hozzáad egy réteg indirekciót, hogy látszódjon, hogy van egy összefüggő logikai címtér a kernel számára. Ez további memóriaterhelést és CPU-ciklust ad hozzá. A nyers swap partíció használatával érheti el a legjobb eredményt.
Következtetés
A Swap-tal kapcsolatos ismeretek ma is elengedhetetlenek. Ez a témakör a Linux Professional Institute 1. szintű tanúsítványának (LPIC 1) átadásához szükséges ismeretek része. A legtöbb vizsga egy vagy két kérdést tartalmaz erről a témáról.
A helycsere segít a Linux rendszernek (kernelnek) a memória gyors rendezésében, ha erre szükség van. Ahhoz, hogy nyitott legyél veled, nincs szükség feltétlenül cserélni a helyet, ha a rendszered rengeteg RAM-mal rendelkezik. Vészhelyzetek esetén ez segíti a rendszer túlélését. Ezért soha nem hagynám el a hagyományos beállítások útját a Szóköz nélkül.
A Swap és az SSD kombinációját ellentmondásos módon vitatják meg, mert az SSD-re írt lemezek száma meglehetősen korlátozott. Mind a Swap, mind az ideiglenes fájlok sok adat írására épülnek. Másrészről a modern SSD-k több mint elegendő kiegészítő területtel (7%) rendelkeznek az ágazati hibák kezeléséhez. A biztonság kedvéért: ha lehetséges, külön cseréljen egy hagyományos merevlemezre - ne használjon ramdisket, sem SSD-t, legalábbis a csere érdekében [4]. Linux rendszere meg fogja köszönni ezt a döntést.
Annak elkerülése érdekében, hogy helyet cseréljen az SSD-re, használhatja a ZRAM-ot [5,6]. Ez a RAM-ban tömörített virtuális csere, más néven zSwap. Ez a technológia lehetővé teszi a memóriában egy tömörített blokkeszközt. Amint nincs több memória, a memóriaoldalak átkerülnek erre a blokkoló eszközre. Ez kevesebb cserehasználatot eredményez, és hozzájárul a merevlemez élettartamának meghosszabbításához is.
Linkek és hivatkozások
- [1] Andrew. S. Tanenbaum: A legkevésbé használt (LRU) oldalcsere algoritmus a modern operációs rendszerekben
- [2] Wikipédia: https: // en.wikipédia.org / wiki / Swappiness
- [3] Energiagazdálkodás / Felfüggesztés és hibernálás, Arch Linux Wiki
- [4] Swap GYIK
- [5] ZRAM a Debian GNU / Linux rendszeren
- [6] A Linux Kernel Archívum a ZRAM-ról
Linux memóriakezelő sorozat
- 1. rész: Linux kernelmemória-kezelés: Hely cseréje
- 2. rész: Parancsok a Linux memória kezeléséhez
- 3. rész: A Linux memóriahasználat optimalizálása
Köszönetnyilvánítás
A szerző köszönetet mond Mandy Neumeyer és Gerold Rupprecht támogatásáért a cikk elkészítése során.