Linux kernel

Zamjena prostora za upravljanje memorijom jezgre Linuxa

Zamjena prostora za upravljanje memorijom jezgre Linuxa

Prvi dio. Swap prostor

O ispravnom radu računala ovisi o posjedovanju odgovarajuće količine memorije. Jednostavno rekavši da nikad ne može biti dovoljno. Što je više fizičke memorije instalirano, to je skuplje. Rezultat je uglavnom pametan kompromis između troškova i brzine pristupa memorijskim ćelijama.

Da bi postigli ovaj kompromis, UNIX / Linux sustavi kombiniraju dvije vrste memorije - fizičku memoriju (RAM) i zamjenjuju prostor. Sve se to zajedno naziva virtualnom memorijom računalnog sustava. Fizička memorija prilično je skupa, ali brza i dostupna u roku od nanosekunde. Suprotno tome, zamjenska memorija prilično je jeftina, ali spora i dostupna u milisekundama.

Postoji nekoliko razloga zašto je zamjena memorije korisna. Prvo, ponekad pojedinačni procesi trebaju više memorije nego što sustav fizički posjeduje i mogu pružiti više procesima koji to zahtijevaju. Kao rezultat toga, svi podaci koji se čuvaju u fizičkoj memoriji tamo se više ne mogu pohraniti. Sada dolazi do zamjene prostora, a odabir memorijskih stranica prenosi se u swap prostor kako bi se oslobodila fizička memorija.

Drugo, nisu svi podaci potrebni u memoriji istovremeno. Zato se manje korištene memorijske stranice parkiraju na swap prostoru kako bi im bilo na raspolaganju što više slobodne fizičke memorije. Ova metoda nazvana je algoritmom zamjene najmanje korištenih stranica (LRU) [1].

Vrste zamjene

Swap prostor postoji u dvije varijante. Verzija 1 je zasebna particija diska koja je takozvana swap particija. Na toj particiji nisu pohranjene datoteke, ali podaci o memoriji (odlagališta). Jednostavno, verzija 2 je datoteka na disku koja se nalazi u datotečnom sustavu na vašem tvrdom disku. Verzija 1 vrlo je česta na UNIX / Linux sustavima, BSD i OS X, dok inačica 2 postoji na sustavima koji pokreću Microsoft Windows. Verzija 2 također se može omogućiti na UNIX / Linux sustavima (vidi dolje).

Da biste vidjeli koji je swap prostor aktivan na vašem UNIX / Linux sustavu, pokrenite sljedeću naredbu u terminalu:

$ / sbin / swapon -s
Naziv datoteke Tip Veličina Korišteno Prioritet
/ dev / dm-3 particija 16150524 316484 -1
$

Kao alternativu možete poslati zahtjev datotečnom sustavu proc i pokrenuti naredbu cat / proc / swaps

Ovaj Linux sustav ima swap particiju veličine oko 15 GB u kojoj se trenutno koristi preko 300M. Stupac Prioritet prikazuje koji prostor za zamjenu treba koristiti prvi. Zadana vrijednost je -1. Što je vrijednost prioriteta veća, to se ranije uzima prostor za zamjenu. Opcija -s je kratka verzija sažetka. Ova je opcija zastarjela i umjesto nje preporučuje se upotreba opcije -show na sljedeći način:

$ / sbin / swapon --show = IME, TIP, VELIČINA, KORIŠTENO, PRIO
IME TIP VELIČINA KORIŠTENO PRIO
/ dev / dm-3 particija 15,4G 307,1M -1
$

Opcija -show prihvaća popis vrijednosti koje predstavljaju zaglavlja stupaca. Da biste postigli određeni redoslijed izlaza, odaberite željena zaglavlja stupaca i njihov redoslijed.

Swap veličina

Općenito je da je veličina prostora za zamjenu dva puta veća od sustava koji ima fizičku memoriju. Imajte ovo na umu za postavke opće namjene i stolne strojeve. Za UNIX / Linux poslužitelje s mnogo više fizičke memorije možete smanjiti veličinu prostora za zamjenu na 50% RAM-a. Prijenosna računala koja mogu hibernirati moraju biti malo veća od fizičke memorije.

Montaža

Za zamjensku particiju preporuča se razmisliti o razmjeni prostora od početka dijeljenja diska na pojedinačne particije ili ostaviti dovoljno neiskorištenog prostora na disku da bi se kasnije mogao koristiti. Tijekom konfiguracije diskova koji će se koristiti obično vas rutina postavljanja pita o veličini prostora za zamjenu. Kao primjer, na Debian GNU / Linuxu ovo izgleda ovako:

Kao što je gore spomenuto, sve dok na tvrdom disku imate prostora za nove particije, možete stvarati i uključivati ​​swap particije upotrebom naredbi poput fdiska i swapona.

Alternativno, prostor za zamjenu može se kasnije omogućiti i kao datoteka za zamjenu. Linux podržava ovaj način tako da ga možete stvoriti, pripremiti i montirati na način sličan načinu zamjene particije. Prednost ovog načina je što ne trebate ponoviti particiju diska da biste dodali dodatni prostor za zamjenu.

Kao primjer, kreiramo datoteku s imenom / swapfile veličine 512M i omogućujemo je kao dodatni prostor za razmjenu. Prvo, uz pomoć naredbe dd kreiramo praznu datoteku. Drugo, mkswap koristi ovu datoteku kako bi je transformirao u swap stil. Možda ćete primijetiti da se sadržaj datoteke tretira kao particija i dodjeljuje mu se odgovarajući UUID. Treće, to omogućujemo pomoću swapona. Na kraju, naredba swapon -show prikazuje dva swap unosa - particiju i novostvorenu datoteku.

# dd ako = / dev / nula od = / swapfile bs = 1024 count = 524288
524288 + 0 skupova podataka u
524288 + 0 skupova podataka
Kopirano 536870912 bajtova (537 MB), 0,887744 s, 605 MB / s
# mkswap / swapfile
Postavljanje razmjene prostora za razmjenu 1, veličina = 524284 KiB
bez oznake, UUID = e47ab7fe-5efc-4175-b287-d0e83bc10f2e
# swapon / swapfile
# swapon --show = IME, TIP, VELIČINA, KORIŠTENO, PRIO
IME TIP VELIČINA KORIŠTENO PRIO
/ dev / dm-3 particija 15,4G 288,9M -1
/ datoteka swap datoteke 512M 0B -2
#

Da biste koristili ovu zamjensku datoteku u vrijeme pokretanja, dodajte kao administrator sljedeći redak u datoteku / etc / fstab:

/ swapfile nema swap sw 0 0

Onemogućivanje prostora za zamjenu

Najmanje, ali ne i posljednje, opet postoji jedna naredba za onemogućavanje swap datoteke. Naziva se naredba zamjena. Zahtijeva jedan parametar koji označava onemogućavanje zamjenskog uređaja. Ova naredba onemogućuje prethodno aktiviranu swap datoteku:

# swapoff / swapfile

Također, zamjena može raditi s UUID-om datotečnog sustava. Napraviti zamjena ponašajte se na ovaj način upotrijebite opciju -U nakon čega slijedi UUID datog datotečnog sustava. U slučaju da je potrebno onemogućiti sve prostore za zamjenu odjednom opciju -a (duga opcija -sve) je vrlo zgodno. Potpuna naredba je zamjena -a.

Podešavanje swap ekosustava

Počevši od izdanja Linux kernela 2.6 uvedena je nova vrijednost. To se pohranjuje u varijablu / proc / sys / vm / swappinessi kontrolira relativnu težinu koja se daje zamjeni iz runtime memorije, za razliku od ispuštanja memorijskih stranica iz predmemorije sistemskih stranica [2]. Zadana vrijednost je 60 (posto slobodne memorije prije aktiviranja zamjene). Što je vrijednost manja, manje se zamjene koristi, a više memorijskih stranica se čuva u fizičkoj memoriji.

Da biste privremeno postavili vrijednost, postavite vrijednost u datotečnom sustavu / proc na sljedeći način:

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

Kao alternativu možete koristiti sysctl naredba kako slijedi:

# sysctl -w vm.zamijenjenost = 10

Da biste trajno postavili vrijednost, dodajte sljedeći redak u datoteku / etc / sysctl.conf:

vm.zamijenjenost = 10

Je li zamjena još uvijek aktualna?

Možete se pitati zašto se bavimo tom temom. Suvremena računala imaju dovoljno fizičke memorije - pa zašto onda moramo brinuti o tome? Postoji nekoliko razloga zašto ova tehnologija vrijedi više od same misli.

Imajte na umu da se neko vrijeme držite stroja, ali s vremena na vrijeme možete ažurirati softver koji koristite na njemu. Trenutno i hardver i softver odgovaraju jedni drugima. U budućnosti će se to možda promijeniti, a trebate više memorije nego sada. Swap particija osim ako nadogradnjom ili kupnjom novog hardvera ne može uštedjeti malo novca.

Možda ste čuli za značajku koja se naziva suspendiranje na disk ili hibernacija [3]. Vaš će stroj spavati. Prije toga mora negdje spremiti svoje trenutno stanje. Sada prostor za zamjenu stupa na snagu i djeluje kao spremnik za čuvanje tih podataka. Čim se stroj probudi pri sljedećem čitanju čitavih podataka iz prostora za zamjenu, učitanih u memoriju, i možete nastaviti raditi tamo gdje ste prije stali.

Ako sustav ima samo jedan trajni uređaj za pohranu, morat će čitati i pisati vaše datoteke tijekom zamjene na istom uređaju. Vidjet ćete veliko poboljšanje ako imate drugi uređaj i ako uređaj za zamjenu možete odvojiti od sukobljenih pristupa datotekama.

Swap datoteka mora prolaziti podatke kroz datotečni sustav. To dodaje sloj neizravnosti kako bi se učinilo da postoji susjedni logički adresni prostor s kojim jezgra može raditi. To dodaje dodatne memorijske troškove i cikluse procesora. Najbolje ćete rezultate dobiti korištenjem sirove swap particije.

Zaključak

I danas je neophodno znanje o zamjeni. Ova je tema dio znanja potrebnog za polaganje certifikata Linux Professional Institute Level 1 (LPIC 1). Većina ispita sadrži jedno ili dva pitanja o ovoj temi.

Swap prostor pomaže vašem Linux sustavu (kernelu) da brzo organizira memoriju ako za to postoji potreba. Da biste bili otvoreni s vama, zamjena prostora nije apsolutno potrebna u slučaju da vaš sustav ima tona RAM-a. U slučaju nužde pomaže vašem sustavu da preživi. Zato nikada ne bih napustio put tradicionalne postavke bez Swap prostora.

Kombinacija Swap-a i SSD-a raspravlja se na kontroverzan način jer je broj upisa na disk na SSD prilično ograničen. Swap i privremene datoteke izgrađene su za pisanje puno podataka. S druge strane, moderni SSD-ovi imaju više nego dovoljno dodatnog prostora (7%) za rješavanje kvarova u sektoru. Da biste bili na sigurnoj strani: ako je moguće, na zasebnom tvrdom disku imajte zasebnu zamjenu - nemojte koristiti ramdisk niti SSD, barem za zamjenu [4]. Vaš Linux sustav će vam zahvaliti na ovoj odluci.

Da biste izbjegli stavljanje prostora za zamjenu na vaš SSD, umjesto toga možete upotrijebiti ZRAM [5,6]. Ovo je virtualna zamjena komprimirana u RAM-u, također nazvana zSwap. Ova tehnologija omogućuje komprimirani blok uređaj u memoriji. Čim više nema memorije, preostale memorijske stranice prenose se na ovaj blok uređaj. To rezultira manjom upotrebom zamjene i pomaže produžiti životni vijek vašeg tvrdog diska.

Poveznice i reference

Serija Linux za upravljanje memorijom

Zahvalnice

Autor želi zahvaliti Mandy Neumeyer i Geroldu Rupprechtu na podršci tijekom pripreme ovog članka.

WinMouse vam omogućuje prilagodbu i poboljšanje kretanja pokazivača miša na Windows računalu
Ako želite poboljšati zadane funkcije pokazivača miša, upotrijebite besplatni program WinMouse. Dodaje više značajki koje će vam pomoći da na najbolji...
Lijevi gumb miša ne radi u sustavu Windows 10
Ako s prijenosnim računalom ili stolnim računalom koristite namjenski miš, ali lijevi gumb miša ne radi u sustavu Windows 10/8/7 iz nekog razloga evo ...
Pokazivač skače ili se slučajno pomiče dok tipkate u sustavu Windows 10
Ako ustanovite da kursor miša sam skače ili se pomiče automatski, nasumično dok tipkate u Windows prijenosnom računalu ili računalu, neki od ovih prij...