Linux kodols

Linux kodola atmiņas pārvaldības mijmaiņas vieta

Linux kodola atmiņas pārvaldības mijmaiņas vieta

Pirmā daļa. Mainīt vietu

Lai dators darbotos pareizi, ir nepieciešams pietiekams atmiņas apjoms. Vienkārši sakot, ka nekad nevar būt pietiekami. Jo vairāk fiziskās atmiņas ir instalētas, jo dārgāk. Galvenokārt rezultāts ir gudrs kompromiss starp izmaksām un ātrumu, lai piekļūtu atmiņas šūnām.

Lai panāktu šo kompromisu, UNIX / Linux sistēmas apvieno divu veidu atmiņu - fizisko atmiņu (RAM) un vietu maiņu. Kopumā to sauc par skaitļošanas sistēmas virtuālo atmiņu. Fiziskā atmiņa ir diezgan dārga, bet ātra un pieejama nanosekundēs. Savukārt mijmaiņas atmiņa ir diezgan lēta, taču lēna un pieejama milisekundēs.

Pastāv daži iemesli, kāpēc atmiņa ir noderīga. Pirmkārt, dažreiz atsevišķiem procesiem ir nepieciešams vairāk atmiņas, nekā sistēma fiziski pieder, un tie var nodrošināt vairāk procesiem, kas to prasa. Rezultātā visus datus, kas tiek glabāti fiziskajā atmiņā, tur vairs nevar uzglabāt. Tagad tiek parādīta mijmaiņas vieta, un atmiņas lapu izvēle tiek pārsūtīta uz mijmaiņas vietu, lai atbrīvotu fizisko atmiņu.

Otrkārt, visi dati nav nepieciešami vienlaikus atmiņā. Tāpēc mazāk izmantotās atmiņas lapas tiek novietotas uz mijmaiņas vietas, lai būtu pieejama pēc iespējas vairāk fiziskās atmiņas. Šī metode tiek dēvēta par vismazāk nesen izmantoto lapu aizvietošanas algoritmu (LRU) [1].

Mijmaiņas veidi

Mijmaiņas vieta pastāv divos variantos. 1. versija ir atsevišķs diska nodalījums, kas ir tā saucamais mijmaiņas nodalījums. Šajā nodalījumā nav saglabāti faili, bet informācija par atmiņu (izgāztuves). Vienkārši 2. versija ir fails diskā, kas atrodas cietā diska failu sistēmā. 1. versija ir ļoti izplatīta UNIX / Linux sistēmās, BSD un OS X, savukārt 2. versija pastāv sistēmās, kurās darbojas Microsoft Windows. 2. versiju var iespējot arī UNIX / Linux sistēmās (skatīt zemāk).

Lai redzētu, kura apmaiņas vieta ir aktīva jūsu UNIX / Linux sistēmā, terminālā izpildiet šādu komandu:

$ / sbin / swapon -s
Faila nosaukuma veida lielums Izmantota prioritāte
/ dev / dm-3 nodalījums 16150524 316484 -1
$

Kā alternatīvu jūs varat nosūtīt pieprasījumu proc failu sistēmai un palaist komandu cat / proc / swaps

Šai Linux sistēmai ir mijmaiņas nodalījums, kura lielums ir aptuveni 15 GB un kurā pašlaik izmanto vairāk nekā 300 M. Slejā Prioritāte ir parādīts, kuru mijmaiņas vietu vispirms izmantot. Noklusējuma vērtība ir -1. Jo augstāka ir prioritātes vērtība, jo agrāk tiek ņemta vērā šī mijmaiņas vieta. Opcija -s ir īss kopsavilkuma variants. Šī opcija ir novecojusi, un tā vietā ieteicams izmantot opciju -show šādi:

$ / sbin / swapon --show = NOSAUKUMS, VEIDS, SIZE, LIETOTS, PRIO
NOSAUKUMA VEIDA LIETOJUMS PRIO
/ dev / dm-3 nodalījums 15,4G 307,1M -1
$

Opcija -show pieņem vērtību sarakstu, kas apzīmē kolonnu galvenes. Lai sasniegtu noteiktu izejas secību, izvēlieties vēlamās kolonnu galvenes un to secību.

Mainīt izmēru

Parasti mijmaiņas vietas lielumam ieteicams būt divreiz lielākam, nekā sistēmai ir fiziskā atmiņa. Paturiet to prātā vispārējas nozīmes iestatījumiem un darbvirsmas mašīnām. UNIX / Linux serveriem ar daudz lielāku fizisko atmiņu jūs varat samazināt mijmaiņas vietas lielumu līdz 50% RAM. Klēpjdatoriem, kas var pārziemot, jābūt nedaudz lielākiem par fizisko atmiņu.

Uzstādīšana

Apmaiņas nodalījumam ieteicams domāt par vietas maiņu jau no diska sadalīšanas sākuma atsevišķos nodalījumos vai atstāt pietiekami daudz neizmantotas vietas diskā, lai to vēlāk izmantotu. Parasti izmantojamo disku konfigurācijas laikā iestatīšanas rutīna jautā par mijmaiņas vietas lielumu. Piemēram, Debian GNU / Linux tas izskatās šādi:

Kā minēts iepriekš, kamēr cietajā diskā ir vieta jauniem nodalījumiem, varat izveidot un iekļaut mijmaiņas nodalījumus, izmantojot tādas komandas kā fdisk un swapon.

Alternatīvi, mijmaiņas vietu vēlāk var iespējot arī kā mijmaiņas failu. Linux atbalsta šo veidu, lai jūs varētu to izveidot, sagatavot un uzstādīt tādā veidā, kas līdzīgs maiņas nodalījumam. Šāda veida priekšrocība ir tā, ka nav nepieciešams pārdalīt disku, lai pievienotu papildu mijmaiņas vietu.

Piemēram, mēs izveidojam failu ar nosaukumu / swapfile ar lielumu 512M un iespējojam to kā papildu mijmaiņas vietu. Pirmkārt, ar komandas dd palīdzību mēs izveidojam tukšu failu. Otrkārt, mkswap izmanto šo failu, lai to pārveidotu mijmaiņas stilā. Jūs varat pamanīt, ka faila saturs tiek apstrādāts kā nodalījums un tiek piešķirts atbilstošs UUID. Treškārt, mēs to iespējojam, izmantojot swapon. Visbeidzot, komandā swapon -show tiek parādīti divi mijmaiņas ieraksti - nodalījums un jaunizveidotais fails.

# dd, ja = / dev / nulle = / swapfile bs = 1024 skaits = 524288
524288 + 0 datu kopas
524288 + 0 datu kopas
Nokopēti 536870912 baiti (537 MB), 0,887744 s, 605 MB / s
# mkswap / swapfile
Mijmaiņas telpas 1. versijas iestatīšana, izmērs = 524284 KiB
nav etiķetes, UUID = e47ab7fe-5efc-4175-b287-d0e83bc10f2e
# swapon / swapfile
# swapon --show = NOSAUKUMS, VEIDS, IZMĒRS, LIETOTS, PRIO
NOSAUKUMA VEIDA LIETOJUMS PRIO
/ dev / dm-3 nodalījums 15,4G 288,9M -1
/ swapfile fails 512M 0B -2
#

Lai sāknēšanas laikā izmantotu šo mijmaiņas failu, kā administratoram pievienojiet failam šādu rindu / etc / fstab:

/ swapfile none swap sw 0 0

Mijmaiņas vietas atspējošana

Vismaz, bet ne pēdējā ir vēl viena komanda, lai atspējotu mijmaiņas failu. Komanda tiek izsaukta nomainīt. Tam nepieciešams viens parametrs, kas norāda, ka mijmaiņas ierīce ir atspējota. Šī komanda atspējo iepriekš aktivizēto mijmaiņas failu:

# swapoff / swapfile

Arī, nomainīt var strādāt ar failu sistēmas UUID. Taisīt nomainīt rīkojieties šādā veidā, izmantojiet opciju -U seko attiecīgās failu sistēmas UUID. Gadījumā, ja ir nepieciešams vienlaikus atspējot visas mijmaiņas vietas -a (garš variants -viss) ir diezgan ērts. Pilna komanda ir nomainīt -a.

Mijmaiņas ekosistēmas regulēšana

Sākot ar Linux kodola izlaidumiem 2.6 tika ieviesta jauna vērtība. Tas tiek saglabāts mainīgajā / proc / sys / vm / swappinessun kontrolē relatīvo svaru, kas piešķirts izpildlaika atmiņas nomaiņai, nevis atmiņas lapu nomešanai no sistēmas lapu kešatmiņas [2]. Noklusējuma vērtība ir 60 (pirms mijmaiņas aktivizēšanas brīvas atmiņas procenti). Jo zemāka vērtība, jo mazāk tiek izmantota maiņa, un jo vairāk atmiņas lapu tiek saglabāta fiziskajā atmiņā.

Lai iestatītu vērtību, īslaicīgi iestatiet vērtību / proc failu sistēmā šādi:

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

Kā alternatīvu jūs varat izmantot sysctl komandu šādi:

# sysctl -w vm.maigums = 10

Lai iestatītu vērtību, pastāvīgi pievienojiet failam šādu rindu / etc / sysctl.konf:

vm.maigums = 10

Vai maiņa joprojām ir aktuāla?

Jūs varat jautāt, kāpēc mēs nodarbojamies ar šo tēmu. Mūsdienu datoros ir pietiekami daudz fiziskās atmiņas - tad kāpēc mums par to jārūpējas? Ir daži iemesli, kāpēc šī tehnoloģija ir vairāk vērts nekā domāt.

Paturiet prātā, ka jūs kādu laiku turaties pie mašīnas, taču laiku pa laikam varat atjaunināt tajā lietoto programmatūru. Pašlaik gan aparatūra, gan programmatūra ir piemēroti viens otram. Nākotnē tas var mainīties, un jums vajag vairāk atmiņas nekā tagad. Ja vien jaunināšana vai jaunas aparatūras iegāde, Swap nodalījums varētu ietaupīt mazliet naudas.

Iespējams, esat dzirdējis par funkciju, kuras nosaukums ir apturēšana diskā vai hibernācijas režīms [3]. Jūsu mašīna gulēs. Pirms tam tam kaut kur ir jāuzglabā pašreizējais stāvoklis. Tagad tiek parādīta mijmaiņas vieta, kas darbojas kā konteiners, lai saglabātu šos datus. Tiklīdz mašīna nākamajā reizē pamostas, visi dati tiek nolasīti no mijmaiņas vietas, ielādēti atmiņā, un jūs varat turpināt darbu tur, kur iepriekš esat apstājies.

Ja sistēmai ir tikai viena pastāvīga atmiņas ierīce, tai būs jālasa un jāraksta faili, vienlaikus nomainot to pašu ierīci. Jūs redzēsiet milzīgu uzlabojumu, ja jums ir otra ierīce un jūs varat atdalīt mijmaiņas ierīci no konfliktējošām piekļuvēm failiem.

Apmaiņas failam ir jānodod dati caur failu sistēmu. Tas pievieno netiešo slāni, lai liktos, ka kodolam ir blakus esoša loģiskās adreses telpa. Tas papildina papildu atmiņas pieskaitāmos un procesoru ciklus. Vislabākos rezultātus iegūsiet, izmantojot neapstrādātu mijmaiņas nodalījumu.

Secinājums

Pat šodien zināšanas par mijmaiņu ir būtiskas. Šī tēma ir daļa no zināšanām, kas nepieciešamas, lai nokārtotu Linux Professional Institute 1. līmeņa sertifikātu (LPIC 1). Lielākajā daļā eksāmenu ir viens vai divi jautājumi par šo tēmu.

Vietas maiņa palīdz Linux sistēmai (kodolam) ātri sakārtot atmiņu, ja tāda ir nepieciešama. Lai būtu atvērts kopā ar jums, vietas nomaiņa nav absolūti nepieciešama, ja jūsu sistēmā ir daudz RAM. Ārkārtas gadījumos tas palīdz jūsu sistēmai izdzīvot. Tāpēc es nekad neatstātu tradicionālās iestatīšanas ceļu bez Vietas maiņa.

Swap un SSD kombinācija tiek apspriesta pretrunīgi, jo diska rakstu skaits uz SSD ir diezgan ierobežots. Gan mijmaiņas, gan pagaidu faili ir veidoti, lai ierakstītu daudz datu. No otras puses, mūsdienu SSD ir vairāk nekā pietiekami daudz papildu vietas (7%), lai tiktu galā ar nozares kļūmēm. Lai būtu drošībā: ja iespējams, parastajā cietajā diskā ir jānomaina atsevišķi - vismaz maiņai neizmantojiet ne ramdisku, ne SSD [4]. Jūsu Linux sistēma pateiksies jums par šo lēmumu.

Lai izvairītos no maiņas vietas ievietošanas SSD, tā vietā varat izmantot ZRAM [5,6]. Tas ir virtuālais mijmaiņas process, kas saspiests operatīvajā atmiņā, saukts arī par zSwap. Šī tehnoloģija ļauj atmiņā saspiestu bloku ierīci. Tiklīdz vairs nav atmiņas, atmiņas lapas tiek pārsūtītas uz šo bloķēšanas ierīci. Tā rezultātā tiek mazāks mijmaiņas lietojums un arī paildzināts cietā diska kalpošanas laiks.

Saites un atsauces

Linux atmiņas pārvaldības sērija

Pateicības

Autore vēlas pateikties Mandy Neumeyer un Gerold Rupprecht par atbalstu, sagatavojot šo rakstu.

OpenTTD apmācība
OpenTTD ir viena no populārākajām biznesa simulācijas spēlēm. Šajā spēlē jums ir jāizveido brīnišķīgs transporta bizness. Tomēr jūs sāksit sākumā apmē...
SuperTuxKart operētājsistēmai Linux
SuperTuxKart ir lielisks nosaukums, kas paredzēts, lai sniegtu jums Mario Kart pieredzi bez maksas jūsu Linux sistēmā. Tas ir diezgan izaicinoši un ja...
Cīņa par Vesnota apmācību
Cīņa par Vesnotu ir viena no populārākajām atvērtā koda stratēģijas spēlēm, kuru jūs varat spēlēt šajā laikā. Šī spēle ir izstrādāta ne tikai ļoti ilg...