Mitä sinun tulee tietää swap-osiosta Linuxissa 1

Mitä sinun tulee tietää swap-osiosta Linuxissa

Kun asennat Linuxin, asennusprosessi lisää todennäköisesti swap-osion kiintolevylle sekä itse Linuxin osiot. Mutta mihin tätä swap-osiota käytetään ja onko se todella tarpeen?

Mikä on swap?

Kun moniajokäyttöjärjestelmän fyysinen muisti loppuu, se ei pysty käynnistämään uusia prosesseja tai varaamaan lisää muistia olemassa oleville prosesseille. Tämän ongelman ratkaisemiseksi paikallisessa tallennustilassa (usein kiintolevyllä) on varattu erityinen tila, joka toimii väliaikaisena säilytysalueena prosesseille, jotka eivät ole tällä hetkellä käynnissä. Käyttöjärjestelmä ”vaihtaa” passiivisen prosessin pois muistista ja jatkaa kiintolevylle. Tämä vapauttaa muistia uutta työtä varten. Kun passiivinen prosessi tulee jälleen aktiiviseksi, se vaihdetaan takaisin paikallisesta tallennustilasta muistiin. Tämä menettely tunnetaan vaihtamisena.

Onko vaihtotila todella tarpeen?

Onko vaihtotila teknisesti tarpeellista? Ei. Linux voi toimia ilman sitä, ja joissain tilanteissa, kuten sulautetuissa ratkaisuissa, Linuxia voidaan käyttää ilman swapia. Jos käyttöjärjestelmä joutuu tilanteeseen, jossa sillä ei ole tarpeeksi muistia, se panikoi ja pysähtyy. Jos fyysistä RAM-muistia on tarpeeksi, kone toimii ilman ongelmia.

Onko vaihtotila käytännössä tarpeen? Joo. Vaikka vaihtaminen hidastaa tietokoneen toimintaa (koska lukeminen ja kirjoittaminen kiintolevylle on paljon hitaampaa kuin RAM-muistin käyttäminen) ja fyysisen muistin omaaminen on paras ratkaisu vaihtamisen välttämiseksi, on olemassa oikeutettuja tilanteita, joissa vaihtaminen on toivottavaa. Esimerkiksi järjestelmän käynnistyksen aikana voi olla prosesseja, jotka suoritetaan (ja siten kuluttavat järjestelmän muistia), mutta sitten nukkuvat tehokkaasti hyvin pitkiä aikoja. Tai muisti, joka on varattu, johon kirjoitetaan ja jota ei sitten käytetä enää. Näissä tilanteissa vaihtoalgoritmi alkaa siirtää tätä muistia kiintolevylle ja vapauttaa siten arvokasta järjestelmämuistia. Tämä itse asiassa varmistaa, että suurin määrä RAM-muistia on käytettävissä koko ajan ja parantaa siten suorituskykyä.

Koneissa, joissa ei ole tarpeeksi fyysistä RAM-muistia, jotta kaikki olisi muistissa, sivutustilan käyttö on välttämätöntä!

Täydellisyyden vuoksi on syytä mainita, että Linuxissa on myös alijärjestelmä nimeltä Out-Of-Memory Killer (OOM), joka sen sijaan, että pysäyttäisi ytimen, kun sen muisti loppuu, alkaa tappaa prosesseja vapauttaakseen resursseja. Sen toiminnot ovat konfiguroitavissa.

Kuinka paljon vaihtotilaa minun pitäisi varata?

Ei ole olemassa ehdotonta sääntöä, ja koska kiintolevytila ​​on halpaa (dollaria per gigatavu), on parempi varata liikaa kuin liian vähän tilaa. Nyrkkisääntönä sinulla pitäisi olla kaksi tai kolme kertaa enemmän sivutustilaa kuin fyysisessä muistissa.

Swap-osion lisääminen swap-osiota laajentamatta

On kaksi tapaa lisätä sivutustilaa järjestelmään muuttamatta olemassa olevaa sivutusosiota. Yksi tapa on käyttää sivutusosiota toisessa asemassa, toinen on käyttää swap-tiedostoa.

Jos haluat käyttää toista kiintolevyä, luo ”Linux swap” -tyyppinen osio (koodi 82) ja suorita sitten ”mkswap” komento vaihtotilan valmistelemiseksi:

Missä /dev/sdb2 on luomasi osion nimi. Jos haluat käyttää vaihtotilaa välittömästi, käytä ”swapon”komento:

Käytä ”swapon -s” saadaksesi luettelon tällä hetkellä käytetyistä swap-tiloista. Jos haluat lisätä sivutustilan pysyvästi järjestelmään, sinun on muokattava /etc/fstab tiedosto ja lisää vastaava rivi:

Jos järjestelmäsi käyttää ainutlaatuisia tunnisteita levyjen nimeämiseen, käytä blkid komento saadaksesi luettelon laitteiden tunnuksista. Linja, johon vaihtotila asennetaan /etc/fstab näyttäisi sitten jotakuinkin tältä:

Jos haluat käyttää tiedostoa vaihtoon, luo suuri tyhjä tiedosto (käyttäen dd) tiedostojärjestelmässä, jota haluat käyttää vaihtamiseen. Jos haluat esimerkiksi luoda 1 Gt:n tiedoston, kirjoita:

Missä /store/swapfile on polku swap-tiedostoon halutussa tiedostojärjestelmässä.

Kuten ylimääräisen swap-osion kanssa, tiedosto on nyt valmisteltava mkswap ja sitten käytetty swapon. Se on myös lisättävä /etc/fstab tiedosto. Menettely on täsmälleen sama kuin edellä, mutta sinun on käytettävä /store/swapfile mielummin kuin /dev/sdb2 vaihtotilan parametrina.

Vaihto

Linux-ydintä voidaan säätää määrittämään, kuinka aggressiivisesti sen tulisi yrittää vaihtaa prosesseja muistista. Tätä suuntausta ohjaa ytimen muuttuja nimeltä swappiness. A swappiness 0 tarkoittaa, että ydin välttää vaihtamista niin paljon kuin mahdollista, kun taas 100 tarkoittaa, että ydin on aggressiivinen swap-tilan käytössä. Oletusasetus monille Linux-jakeluille on 60. On mahdollista muuttaa numeroa dynaamisesti tällä komennolla:

Jos haluat asettaa arvon pysyvästi, sinun on muutettava (tai lisättävä, jos sitä ei ole olemassa). vm.swappiness muuttuja kohdassa /etc/sysctl.conf tiedosto.

Kerro meille, jos sinulla on kysyttävää swapista Linuxissa.

Tämä artikkeli julkaistiin ensimmäisen kerran joulukuussa 2013 ja päivitettiin elokuussa 2020.

Kuvan luotto: vaihtaa

Tue työtämme ❤️

Jos pidit tästä artikkelista, harkitse tipin antamista, jotta voimme jatkaa laadukkaan sisällön julkaisemista.

Turvallinen maksu PayPalilla
Moyens I/O Staff on motivoinut sinua antamalla neuvoja tekniikasta, henkilökohtaisesta kehityksestä, elämäntavoista ja strategioista, jotka auttavat sinua.