Jedro Linuxa

Zamenjalni prostor za upravljanje pomnilnika jedra Linuxa

Zamenjalni prostor za upravljanje pomnilnika jedra Linuxa

Prvi del. Swap prostor

Za pravilno delovanje računalnika je odvisno od zadostne količine pomnilnika. Preprosto rečem, da nikoli ne more biti dovolj. Več kot je nameščenega fizičnega pomnilnika, dražji je. Rezultat je predvsem pameten kompromis med stroški in hitrostjo dostopa do pomnilniških celic.

Da bi dosegli ta kompromis, sistemi UNIX / Linux kombinirajo dve vrsti pomnilnika - fizični pomnilnik (RAM) in zamenjata prostor. Skupaj se temu reče navidezni pomnilnik računalniškega sistema. Fizični pomnilnik je precej drag, a hiter in dostopen v nanosekundah. V nasprotju s tem je swap pomnilnik precej poceni, a počasen in dostopen v milisekundah.

Obstaja nekaj razlogov, zakaj je zamenjava pomnilnika koristna. Prvič, včasih posamezni procesi potrebujejo več pomnilnika, kot ga ima sistem fizično, in lahko zagotovijo več procesom, ki to zahtevajo. Posledično vseh podatkov, ki se hranijo v fizičnem pomnilniku, ni več mogoče shraniti. Zdaj pride v poštev prostor za zamenjavo in izbrani pomnilniški strani se prenesejo v prostor za zamenjavo, da sprostijo fizični pomnilnik.

Drugič, vsi podatki niso potrebni hkrati v pomnilniku. Zato so manj uporabljene pomnilniške strani parkirane na swap prostoru, da je na voljo čim več prostega fizičnega pomnilnika. Ta metoda se imenuje algoritem za najmanj nedavno uporabljeno zamenjavo strani (LRU) [1].

Vrste zamenjav

Swap prostor obstaja v dveh različicah. Različica 1 je ločena particija diska, ki je tako imenovana swap particija. Na tej particiji ni shranjenih datotek, ampak informacije o pomnilniku (odlagališča). Preprosto, različica 2 je datoteka na disku, ki je v datotečnem sistemu na trdem disku. Različica 1 je zelo pogosta v sistemih UNIX / Linux, BSD in OS X, medtem ko različica 2 obstaja v sistemih z operacijskim sistemom Microsoft Windows. Različico 2 lahko omogočite tudi v sistemih UNIX / Linux (glejte spodaj).

Če želite videti, kateri swap prostor je aktiven v vašem sistemu UNIX / Linux, v terminalu zaženite naslednji ukaz:

$ / sbin / swapon -s
Ime datoteke Vrsta Velikost Uporabljeno Prednost
/ dev / dm-3 particija 16150524 316484 -1
$

Namesto tega lahko datotečni sistem proc pošljete zahtevo in zaženete ukaz cat / proc / swaps

Ta sistem Linux ima swap particijo velikosti približno 15 GB, v kateri je trenutno v uporabi več kot 300 milijonov. Stolpec Prednost prikazuje, kateri prostor za zamenjavo uporabiti najprej. Privzeta vrednost je -1. Višja kot je prednostna vrednost, prej se ta prostor za zamenjavo upošteva. Možnost -s je kratka različica -summary. Ta možnost je zastarela in priporočljivo je, da namesto nje uporabite možnost -show:

$ / sbin / swapon --show = IME, TIP, VELIKOST, UPORABLJENO, PRIO
IME TIP VELIKOST UPORABLJENI PRIO
/ dev / dm-3 particija 15,4G 307,1M -1
$

Možnost -show sprejme seznam vrednosti, ki predstavljajo glave stolpcev. Če želite doseči določen izhodni vrstni red, izberite želene glave stolpcev in njihovo zaporedje.

Velikost zamenjave

Splošno pravilo je, da je velikost prostora za zamenjavo dvakrat večja, kot ima sistem fizičnega pomnilnika. Upoštevajte to pri splošnih namestitvah in namiznih strojih. Za strežnike UNIX / Linux z veliko več fizičnega pomnilnika lahko prostor za zamenjavo zmanjšate na 50% RAM-a. Prenosni računalniki, ki lahko prezimijo, morajo biti nekoliko večji od fizičnega pomnilnika.

Namestitev

Za izmenjalno particijo je priporočljivo, da si omislite prostor za zamenjavo že od začetka delitve diska na posamezne particije ali pa pustite dovolj neuporabljenega prostora na disku, da ga lahko kasneje uporabite. Običajno vas med konfiguracijo diskov, ki jih želite uporabiti, nastavitvena rutina vpraša o velikosti prostora za zamenjavo. Na primer, v Debian GNU / Linux je to videti tako:

Kot smo že omenili, dokler imate na trdem disku prostor za nove particije, lahko ustvarite in vključite swap particije z uporabo ukazov, kot sta fdisk in swapon.

Swap prostor lahko kasneje omogočite tudi kot swap datoteko. Linux to podpira, tako da ga lahko ustvarite, pripravite in vgradite na podoben način kot swap particija. Prednost tega načina je, da vam ni treba razdeliti diska, da dodate dodaten prostor za zamenjavo.

Kot primer izdelamo datoteko z imenom / swapfile velikosti 512M in to omogočimo kot dodaten prostor za zamenjavo. Najprej s pomočjo ukaza dd izdelamo prazno datoteko. Drugič, mkswap uporablja to datoteko za preoblikovanje v slog swap. Morda boste opazili, da je vsebina datoteke obravnavana kot particija in je dodeljen ustrezen UUID. Tretjič, to omogočimo s pomočjo swapona. Na koncu ukaz swapon -show prikaže dva vnosa zamenjave - particijo in novo ustvarjeno datoteko.

# dd, če = / dev / nič od = / swapfile bs = 1024 count = 524288
524288 + 0 podatkovnih nizov v
524288 + 0 naborov podatkov
Kopirano 536870912 bajtov (537 MB), 0,887744 s, 605 MB / s
# mkswap / swapfile
Nastavitev izmenjalnega prostora različice 1, velikost = 524284 KiB
brez nalepke, UUID = e47ab7fe-5efc-4175-b287-d0e83bc10f2e
# swapon / swapfile
# swapon --show = IME, TIP, VELIKOST, UPORABLJENO, PRIO
IME TIP VELIKOST UPORABLJENI PRIO
/ dev / dm-3 particija 15,4G 288,9M -1
/ swapfile datoteka 512M 0B -2
#

Če želite uporabiti to swap datoteko ob zagonu, dodajte kot skrbnik v datoteko naslednjo vrstico / etc / fstab:

/ swapfile nič swap sw 0 0

Onemogočanje prostora za zamenjavo

Še najmanj, ne nazadnje obstaja še en ukaz za onemogočanje swap datoteke. Kliče se ukaz zamenjava. Zahteva en parameter, ki označuje onemogočeno zamenjavo naprave. Ta ukaz onemogoči prej aktivirano swap datoteko:

# swapoff / swapfile

Tudi, zamenjava lahko deluje z UUID datotečnega sistema. Narediti zamenjava ravnajte tako, uporabite možnost -U čemur sledi UUID ustreznega datotečnega sistema. V primeru, da je treba onemogočiti vse prostore za zamenjavo hkrati -a (dolga možnost - vse) je zelo priročno. Celoten ukaz je zamenjava -a.

Nastavitev swap ekosistema

Od izdaje jedra Linuxa 2.6 je bila uvedena nova vrednost. Ta je shranjena v spremenljivki / proc / sys / vm / swappinessin nadzoruje relativno težo, ki je dana zamenjavi izvajalnega pomnilnika, v nasprotju s spuščanjem pomnilniških strani iz predpomnilnika sistemskih strani [2]. Privzeta vrednost je 60 (odstotkov pomnilnika pred aktiviranjem zamenjave). Nižja kot je vrednost, uporabljeno je manj zamenjav in več pomnilniških strani se hrani v fizičnem pomnilniku.

Če želite začasno nastaviti vrednost v datotečnem sistemu / proc, kot sledi:

# echo 10> / proc / sys / vm / swappiness

Kot alternativo lahko uporabite sysctl ukaz, kot sledi:

# sysctl -w vm.zamenljivost = 10

Za trajno nastavitev vrednosti v datoteko dodajte naslednjo vrstico / etc / sysctl.conf:

vm.zamenljivost = 10

Je zamenjava še vedno posodobljena?

Lahko se vprašate, zakaj se ukvarjamo s to temo. Sodobni računalniki imajo dovolj fizičnega pomnilnika - zakaj torej moramo na to skrbeti? Obstaja nekaj razlogov, zakaj je ta tehnologija vredna več kot le razmišljanja.

Upoštevajte, da se nekaj časa držite naprave, vendar lahko občasno posodobite programsko opremo, ki jo uporabljate. Trenutno si strojna in programska oprema ustrezata. V prihodnosti se lahko spremeni in potrebujete več pomnilnika, kot ga imate zdaj. Zamenjava particije vam lahko z nadgradnjo ali nakupom nove strojne opreme prihrani nekaj denarja.

Morda ste že slišali za funkcijo, imenovano začasno ustavitev na disk ali način mirovanja [3]. Vaša naprava bo spala. Pred tem mora nekje shraniti trenutno stanje. Zdaj je prostor za zamenjavo v igri in deluje kot vsebnik za shranjevanje teh podatkov. Takoj, ko se naprava naslednjič prebudi, se iz prostora za zamenjavo preberejo vsi podatki, naloženi v pomnilnik, in lahko nadaljujete z delom, kjer ste se prej.

Če ima sistem samo eno trajno pomnilniško napravo, bo moral med zamenjavo na isti napravi brati in pisati vaše datoteke. Če imate drugo napravo in lahko swap napravo ločite od nasprotujočih si dostopov do datotek, boste opazili velik napredek.

Datoteka swap mora podatke prenašati skozi datotečni sistem. To doda plast indirektnosti, da se pokaže, da obstaja jedro neprekinjenega logičnega naslovnega prostora, s katerim jedro lahko deluje. To dodaja dodatne obremenitve pomnilnika in cikle procesorja. Najboljše rezultate boste dosegli z uporabo surove swap particije.

Zaključek

Še danes je znanje o zamenjavi ključnega pomena. Ta tema je del znanja, ki je potrebno za pridobitev certifikata Linux Professional Institute Level 1 (LPIC 1). Večina izpitov vsebuje eno ali dve vprašanji o tej temi.

Zamenjalni prostor pomaga vašemu sistemu Linux (jedru), da hitro organizira spomin, če ga potrebuje. Če želite biti odprti pri sebi, zamenjajte prostor ni nujno, če ima vaš sistem na tone RAM-a. V nujnih primerih pomaga vašemu sistemu preživeti. Zato nikoli ne bi zapustil poti tradicionalne postavitve brez zamenjave prostora.

Kombinacija Swap in SSD je obravnavana sporno, ker je število zapisov na SSD precej omejeno. Tako swap kot začasne datoteke so zgrajene za zapisovanje veliko podatkov. Po drugi strani pa imajo sodobni SSD-ji več kot dovolj dodatnega prostora (7%) za obvladovanje sektorskih napak. Da boste na varnem: če je mogoče, na običajnem trdem disku imejte ločeno zamenjavo - vsaj za zamenjavo ne uporabljajte diska niti SSD-ja [4]. Vaš sistem Linux se vam bo zahvalil za to odločitev.

Da se izognete zamenjavi prostora na trdem disku, lahko namesto tega uporabite ZRAM [5,6]. To je navidezna zamenjava, stisnjena v RAM-u, imenovana tudi zSwap. Ta tehnologija omogoča stisnjeno blokovno napravo v pomnilniku. Takoj, ko pomnilnika ni več, se strani pomnilnika prenesejo v to blokovno napravo. To ima za posledico manjšo uporabo zamenjav in tudi podaljša življenjsko dobo vašega trdega diska.

Povezave in reference

Serija za upravljanje pomnilnika Linux

Zahvala

Avtor se zahvaljuje Mandy Neumeyer in Geroldu Rupprechtu za podporo pri pripravi tega članka.

Nadzirajte in upravljajte gibanje miške med več monitorji v sistemu Windows 10
Upravitelj miške z dvojnim zaslonom vam omogoča nadzor in konfiguriranje gibanja miške med več monitorji, tako da upočasni gibanje blizu meje. Windows...
WinMouse vam omogoča prilagajanje in izboljšanje premikanja kazalca miške v računalniku z operacijskim sistemom Windows
Če želite izboljšati privzete funkcije kazalca miške, uporabite brezplačno programsko opremo WinMouse. Dodaja več funkcij, s pomočjo katerih boste kar...
Levi gumb miške ne deluje v sistemu Windows 10
Če s prenosnikom ali namiznim računalnikom uporabljate namensko miško, vendar gumb miške z levim klikom ne deluje v operacijskem sistemu Windows 10/8/...