tällä sivulla on johdatus GNU / Linuxin swap-tilaan ja hakulaitteeseen. Se kattaa luominen ja aktivointi swap osiot ja swap tiedostoja.
All about Linux swap space:
Linux jakaa fyysisen RAM-muistinsa (random access memory) palasiin, joita kutsutaan sivuiksi. Swap on prosessi, jossa muistisivu kopioidaan kiintolevyn esiasetettuun tilaan, jota kutsutaan swap-avaruudeksi, kyseisen muistisivun vapauttamiseksi. Fyysisen muistin ja vaihtotilan yhteenlaskettu koko on käytettävissä olevan virtuaalimuistin määrä.
tukea swapille tarjoavat Linux-ydin ja util-linux-paketin käyttäjäavaruusohjelmat.
Swap space
Swap space voi olla levyosion tai tiedoston muodossa. Käyttäjät voivat luoda swap-tilan asennuksen aikana tai milloin tahansa myöhemmin halutulla tavalla. Swap space voidaan käyttää kahteen tarkoitukseen, laajentaa virtuaalimuistin kuin asennettu fyysinen muisti (RAM), ja myös keskeyttää-to-disk tuki.
Jos virtuaalimuistin laajentaminen swapilla on hyödyllistä, riippuu asennetun fyysisen muistin määrästä. Jos fyysisen muistin määrä on pienempi kuin kaikkien haluttujen ohjelmien suorittamiseen tarvittava muistin määrä, voi olla hyödyllistä ottaa swap käyttöön. Näin vältetään pois muistista-olosuhteet, joissa Linux-ytimen oom-tappajamekanismi yrittää automaattisesti vapauttaa muistia tappamalla prosesseja. Jos haluat lisätä virtuaalimuistin määrää vaadittuun määrään, lisää tarvittava erotus (tai enemmän) swap-välilyönniksi.
suurin haittapuoli swapin käyttöönotossa on sen heikompi suorituskyky, KS.kohta #suorituskyky. Näin ollen swapin käyttöönotto on henkilökohtainen mieltymys: jotkut haluavat ohjelmat tapetaan yli mahdollistaa swap ja toiset mieluummin mahdollistaa swap ja hitaampi järjestelmä, kun fyysinen muisti on käytetty loppuun.
tarkistaaksesi swap-tilan, käytä:
$ swapon --show
tai näytä fyysinen muisti sekä swap-käyttö:
$ free -h
Swap-osio
tämän artikkelin tai osion faktatarkkuus on kiistanalainen.
82
on MBR: n swap-osion tyyppi, MBR: ssä ei ole swap-osion autodetektiota. / TRIM-komennot swap-osioissa näyttävät olevan automaattisesti ytimen antamia, jos niitä tuetaan, KS. Fedora Deployment Guides. (Keskustele puheessa:Swap#Clarify swap discovery)swap-osio voidaan luoda useimmilla GNU / Linux-osiointityökaluilla. Swap-osiot merkitään tyypillisesti tyypiksi 82
. Vaikka on mahdollista käyttää mitä tahansa osiotyyppiä swapina, on suositeltavaa käyttää type 82
useimmissa tapauksissa, koska systemd tunnistaa sen automaattisesti ja asentaa sen (KS.alla).
Jos haluat määrittää osion Linux swap-alueeksi, käytetään komentoa mkswap(8). Esimerkiksi:
# mkswap /dev/sdxy
ottaaksesi kaukohakulaitteen käyttöön:
# swapon /dev/sdxy
ottaaksesi tämän swap-osion käyttöön käynnistyksessä, lisää merkintä /etc/fstab
:
UUID=device_UUID none swap defaults 0 0
missä device_UUID
on vaihtoavaruuden UUID.
Katso tiedoston syntaksi fstab: stä.
- fstab-merkintä on valinnainen, jos swap-osio sijaitsee GPT: tä käyttävässä laitteessa. Katso seuraava alajakso.
- Jos käytät SSD: tä TRIM-tuella, harkitse
discard
käyttöä fstab: N swap-rivillä. Jos aktivoidaan swap manuaalisesti swaponilla,-d
--discard
parametri saavuttaa saman. Katso lisätietoja swaponista (8).
systemd: n aktivointi
systemd aktivoi kahteen eri mekanismiin perustuvat vaihtoosiot. Molemmat ovat suoritettavia /usr/lib/systemd/system-generators
. Generaattorit ovat käynnissä käynnistys ja luoda native systemd yksiköt kiinnikkeet. Ensimmäisessä, systemd-fstab-generator
, lukee fstab generoidakseen yksiköitä, mukaan lukien swap-yksikön. Toinen, systemd-gpt-auto-generator
tarkastaa juurilevyn tuottaakseen yksiköitä. Se toimii vain GPT-levyillä ja voi tunnistaa swap-osiot niiden tyypin GUID mukaan, katso lisätietoja systemd#GPT-osioiden automounting-kohdasta.
invalidisoiva swap
deaktivoidaksesi tietyn swap-tilan:
# swapoff /dev/sdxy
vaihtoehtoisesti käytä switch poistaa kaiken swap-tilan käytöstä.
koska swapia hallinnoi systemd, se aktivoituu uudelleen seuraavassa järjestelmän käynnistyksessä. Jos haluat poistaa havaitun swap-tilan automaattisen aktivoinnin pysyvästi käytöstä, aja systemctl --type swap
löytääksesi syyllisen .vaihda yksikkö ja peitä se.
Swap-tiedosto
vaihtoehtona kokonaisen osion luomiselle swap-tiedosto tarjoaa mahdollisuuden muuttaa kokoaan lennossa, ja se on helpompi poistaa kokonaan. Tämä voi olla erityisen toivottavaa, jos levytila on premium (esim vaatimattoman kokoinen SSD).
manuaalisesti
Swap-tiedoston luonti
käytä dd: tä luodaksesi haluamasi kokoisen swap-tiedoston. Esimerkiksi 512 MiB: n swap-tiedoston luominen:
# dd if=/dev/zero of=/swapfile bs=1M count=512 status=progress
aseta oikeat käyttöoikeudet (maailmalla luettava swap-tiedosto on valtava paikallinen haavoittuvuus):
# chmod 600 /swapfile
kun olet luonut oikeankokoisen tiedoston, muotoile se swap:
# mkswap /swapfile
aktivoi swap-tiedosto:
# swapon /swapfile
muokkaa lopuksi fstab: n asetuksia swap-tiedoston syöttämiseksi:
/etc/fstab
/swapfile none swap defaults 0 0
tiedot, katso fstab#usage.
- swap-tiedosto on määriteltävä sen sijainnin perusteella tiedostojärjestelmässä, ei sen UUID: n tai etiketin mukaan.
- kun käytät Btrfs: ää, älä unohda lisätä myös luotua alitilavuutta luetteloon ja poista
discard,autodefrag
ja pakkausvaihtoehdot.
Poista swap-tiedosto
poistaaksesi swap-tiedoston, se on ensin kytkettävä pois päältä ja sen jälkeen se voidaan poistaa:
# swapoff /swapfile# rm -f /swapfile
poista asiaankuuluva merkintä kohdasta /etc/fstab
.
automatisoitu
zram-generaattori
tämän työkalun tavoitteena on zram-laitteiden luominen. Se on kirjoitettu ruosteella ja sijaitsee systemd: n GitHubissa. Se voidaan asentaa ZRAM-generatorAUR paketti.Kokoonpano on suoraviivainen ja selitetty Readme.
systemd-swap
systemd-swap on skripti, jolla luodaan hybrid swap-tilaa zram-swapeista, swap-tiedostoista ja swap-osioista. Se ei liity systemd-projektiin.
Asenna systemd-swap-paketti. Kommentin poisto ja set swapfc_enabled=1
/etc/systemd/swap.conf
Swap File Chunked-osiossa. Käynnistä / Ota käyttöön
– palvelu.
käy kirjoittajien GitHub-sivulla lisätietoja ja suositellun kokoonpanon laatiminen.
- Jos lehdessä on jatkuvasti seuraava varoitus
systemd-swap: WARN: swapFC: ENOSPC
eikä swap-tiedostoa ole luotu, on tehtävä poisto ja asetettavaswapfc_force_preallocated=1
in/etc/systemd/swap.conf
. - systemd-swapin luomaa swap-tiedostoa ei voi helposti käyttää lepotilaan. KS. systemd-swap kysymys 85.
Swap-salaus
Katso dm-crypt / Swap-salaus.
suorituskyky
Swap-operaatiot ovat yleensä huomattavasti hitaampia kuin suoraan tietojen hakeminen RAM-muistia käyttäen. Swapin poistaminen käytöstä kokonaan suorituskyvyn parantamiseksi voi joskus johtaa heikentymiseen, koska se vähentää VFS-välimuisteille käytettävissä olevaa muistia, mikä aiheuttaa tiheämpää ja kalliimpaa levyn I/O.
Swap-arvoja voidaan säätää suorituskyvyn helpottamiseksi:
Swappiness
swappiness sysctl-parametri edustaa ytimen mieltymystä (tai välttämistä) swap-avaruudessa. Swappinessin arvo voi olla välillä 0-200 (max 100 jos Linux < 5.8), oletusarvo on 60. Alhainen arvo aiheuttaa ytimen välttää swap, korkea arvo aiheuttaa ytimen yrittää käyttää swap tilaa, ja arvo 100 tarkoittaa IO kustannukset oletetaan olevan yhtä suuri. Riittävän muistin vähäisen arvon käytön tiedetään parantavan reagointikykyä monissa järjestelmissä.
nykyisen swappiness-arvon tarkistamiseksi:
$ sysctl vm.swappiness
vaihtoehtoisesti tiedostot /sys/fs/cgroup/memory/memory.swappiness
tai /proc/sys/vm/swappiness
voidaan lukea raa ’ an kokonaisluvun arvon saamiseksi.
/proc
on vähemmän järjestetty ja sitä pidetään vain yhteensopivuustarkoituksessa, kehotetaan käyttämään /sys
sen sijaan.swappiness-arvon asettamiseksi väliaikaisesti:
# sysctl -w vm.swappiness=10
swappiness-arvon asettamiseksi pysyvästi, luodaan sysctl.d (5) asetustiedosto. Esimerkiksi:
/etc / sysctl.d / 99-swappiness.conf
vm.swappiness=10
testaa ja lisää siitä, miksi tämä voi toimia, tutustu tähän artikkeliin.
VFS-välimuistin paine
toinen swap-suorituskykyyn vaikuttava sysctl-parametri on vm.vfs_cache_pressure
, joka ohjaa ytimen taipumusta palauttaa VFS-välimuistien välimuistiin, vs. pagecache ja swap. Tämän arvon korottaminen lisää VFS-kätköjen talteenottonopeutta. Lisätietoja on Linux-ytimen dokumentaatiossa.
prioriteetti
Jos sinulla on useampi kuin yksi swap-tiedosto tai swap-osio, sinun tulisi harkita prioriteettiarvon (0-32767) asettamista kullekin swap-alueelle. Järjestelmä käyttää swap-alueita, joilla on korkeampi prioriteetti, ennen kuin käyttää swap-alueita, joilla on alempi prioriteetti. Jos sinulla on esimerkiksi nopeampi levy (/dev/sda
) ja hitaampi levy (/dev/sdb
), aseta korkeampi prioriteetti nopeimmassa laitteessa sijaitsevalle vaihtoalueelle. Prioriteetit voidaan määrittää fstab: ssä pri
parametri:
/dev/sda1 none swap defaults,pri=100 0 0/dev/sdb2 none swap defaults,pri=10 0 0
tai --priority
swaponin parametri:
# swapon --priority 100 /dev/sda1
Jos kahdella tai useammalla alueella on sama prioriteetti ja se on korkein saatavilla oleva prioriteetti, sivut jaetaan niiden kesken.
Zswap tai zram
Zswap on Linux-ytimen ominaisuus, joka tarjoaa pakatun kirjoitusvälimuistin vaihdetuille sivuille. Tämä lisää suorituskykyä ja vähentää IO-operaatioita. ZRAM luo virtuaalisen pakatun Swap-tiedoston muistiin vaihtoehtona levyllä olevalle swap-tiedostolle.
Striping
ei ole tarvetta käyttää raidia swap-suorituskyvyn vuoksi. Itse kernel voi Stripata swappingia useammalla laitteella, jos niille vain antaa saman prioriteetin /etc/fstab
– tiedostossa. Katso ohjelmisto-RAID HOWTO lisätietoja.