„Linux“ branduolys

Supratimas vm.apsikeitimas

Supratimas vm.apsikeitimas
„Linux“ branduolys yra gana sudėtinga programinė įranga, turinti ilgą komponentų, tokių kaip moduliai, sąsajos ir konfigūracijos failai, sąrašą [1]. Šiuos komponentus galima sukonfigūruoti nurodant tam tikras vertes, kad būtų pasiektas pageidaujamas komponento elgesys ar veikimo būdas [2,3,4]. Vėliau ši sąranka tiesiogiai įtakoja visos „Linux“ sistemos elgseną ir našumą.

Dabartinės „Linux“ branduolio ir jo komponentų vertės yra prieinamos naudojant specialią sąsają - / proc katalogą [5]. Tai yra virtuali failų sistema, kurioje pavieniai failai realiuoju laiku užpildomi reikšmėmis. Vertės nurodo faktinę būseną, kurioje yra „Linux“ branduolys. Atskirus failus kataloge / proc galite pasiekti naudodami komandą cat taip:

$ cat / proc / sys / net / core / somaxconn
128
$

Vienas iš šių branduolio parametrų vadinamas vm.apsikeitimas. Jis „kontroliuoja santykinį svorį, skiriamą vykdymo laiko atminties keitimui, o ne atminties puslapių numetimui iš sistemos puslapių talpyklos“ [6]. Pradedant „Linux“ branduolio leidimais 2.6 ši vertė buvo įvesta. Jis saugomas faile / proc / sys / vm / swappiness .

Naudojant „Swap“

Dešimtojo dešimtmečio pradžioje esminė mažesnių UNIX mašinų naudojimo dalis buvo apsikeitimo sandorių naudojimas [6]. Tai vis dar naudinga (pavyzdžiui, transporto priemonėje turėti atsarginę padangą), kai nemalonūs atminties nutekėjimai trukdo jūsų darbui. Mašina sulėtins greitį, tačiau daugeliu atvejų vis tiek bus tinkama atlikti paskirtą užduotį. Laisvos programinės įrangos kūrėjai labai stengėsi sumažinti ir pašalinti programos klaidas, todėl prieš keisdami branduolio parametrus pirmiausia apsvarstykite galimybę atnaujinti į naujesnę programos versiją ir susijusias bibliotekas.

Jei vykdysite daugybę užduočių, neaktyvios užduotys bus pakeistos į diską, geriau panaudojant atmintį su aktyviomis užduotimis. Vaizdo įrašų redagavimas ir kitos didelės atminties reikalaujančios programos dažnai rekomenduoja atminties ir vietos diske. Jei turite senesnę mašiną, kuriai negalima atnaujinti atminties, tai, kad prieinama daugiau apsikeitimo, gali būti geras laikinas sprendimas (kaip sužinoti daugiau apie tai).

Keitimas gali įvykti atskirame skaidinyje arba apsikeitimo faile. Skirstymas yra greitesnis ir daugelio duomenų bazių programų mėgstamas. Failų metodas yra lankstesnis (žr. Paketą „dphys-swapfile“ Debian GNU / Linux [7]). Turėdami daugiau nei vieną fizinį įrenginį keitimui, „Linux“ branduolys gali pasirinkti įrenginį, kuris yra greičiausiai prieinamas (mažesnė delsa).

vm.apsikeitimas

Numatytoji vm reikšmė.„swappiness“ yra 60 ir rodo laisvos atminties procentą prieš suaktyvinant apsikeitimą. Kuo mažesnė vertė, tuo mažiau keičiama ir daugiau atminties puslapių laikoma fizinėje atmintyje.

60 vertė yra kompromisas, gerai veikiantis šiuolaikinėse darbalaukio sistemose. Mažesnė vertė yra rekomenduojama parinktis serverio sistemai. Kaip pažymima „Red Hat Performance Tuning“ vadove [8], duomenų bazės darbo krūviams rekomenduojama naudoti mažesnę „swappiness“ vertę. Pavyzdžiui, „Oracle“ duomenų bazėms „Red Hat“ rekomenduoja „swappiness“ vertę 10. Priešingai, „MariaDB“ duomenų bazėms rekomenduojama nustatyti „swappiness“ reikšmę 1 [9].

Vertės keitimas tiesiogiai įtakoja „Linux“ sistemos veikimą. Šios vertės yra apibrėžtos:

* 0: apsikeitimas yra išjungtas
* 1: minimalus apsikeitimo kiekis, jo visiškai neišjungiant
* 10: rekomenduojama vertė našumui pagerinti, kai sistemoje yra pakankamai atminties
* 100: agresyvus apsikeitimas

Kaip parodyta aukščiau, katės komanda padeda nuskaityti vertę. Be to, komanda sysctl duoda tą patį rezultatą:

# sysctl vm.apsikeitimas
vm.apsikeitimas = 60
#

Atminkite, kad komanda sysctl yra prieinama tik administratoriaus vartotojui. Norėdami nustatyti vertę, laikinai nustatykite reikšmę / proc failų sistemoje taip:

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

Kaip alternatyvą galite naudoti komandą sysctl taip:

# sysctl -w vm.apsikeitimas = 10

Norėdami visam laikui nustatyti vertę, atidarykite failą / etc / sysctl.conf kaip administravimo vartotojas ir pridėkite šią eilutę:

vm.apsikeitimas = 10

Išvada

Vis daugiau „Linux“ vartotojų naudoja virtualias mašinas. Kiekvienas iš jų turi savo branduolį, be hipervizoriaus, kuris faktiškai valdo aparatinę įrangą. Virtualiose mašinose yra sukurti virtualūs diskai, todėl pakeitus nustatymą virtualiosios mašinos viduje bus neapibrėžti rezultatai. Pirmiausia eksperimentuokite keisdami hipervizoriaus branduolio reikšmes, nes tai iš tikrųjų valdo jūsų mašinos aparatinę įrangą.

Senesnėms mašinoms, kurių nebegalima atnaujinti (jau yra maksimaliai palaikoma atmintis), galite apsvarstyti galimybę į mašiną įdėti mažą kietojo kūno diską, kad jis būtų naudojamas kaip papildomas apsikeitimo įrenginys. Tai akivaizdžiai taps eksploatacine medžiaga, nes atminties ląstelės sugenda dėl daugybės rašymų, tačiau gali už labai mažą kainą prailginti mašinos tarnavimo laiką vieneriems metams ar daugiau. Mažesnė vėlavimo trukmė ir greitas skaitymas suteiks daug geresnių rezultatų, nei pakeičiant į įprastą diską, todėl RAM bus tarpiniai rezultatai. Tai turėtų leisti naudoti šiek tiek mažesnes vm.„swappiness“ vertės, užtikrinančios optimalų našumą. Teks eksperimentuoti. SSD įrenginiai greitai keičiasi.

Jei turite daugiau nei vieną apsikeitimo įrenginį, apsvarstykite galimybę padaryti jį RAID įrenginiu, kad duomenys būtų išbrėžti per visus galimus įrenginius.

Galite pakeisti „swappiness“ neperkraunant mašinos, o tai yra didelis pranašumas prieš kitas operacines sistemas.

Stenkitės įtraukti tik savo verslui reikalingas paslaugas. Tai sumažins atminties reikalavimus, pagerins našumą ir paliks viską paprasčiau.

Paskutinė pastaba: pridėsite apkrovos prie apsikeitimo įrenginių. Norėsite stebėti jų temperatūrą. Perkaitusi sistema sumažins procesoriaus dažnį ir sulėtins greitį.

Padėkos

Autorius norėtų pasakyti ypatingą padėką Geroldui Rupprechtui ir Zolekai Hatitongwe už kritiškas pastabas ir komentarus rengiant šį straipsnį.

Nuorodos ir nuorodos

* [1] „Linux“ branduolio pamoka pradedantiesiems, https: // linuxhint.com / Linux-kernel-tutorial-beginners /

* [2] Derekas Molloy: „Linux“ branduolio modulio rašymas - 1 dalis: įvadas, http: // derekmolloy.ty / rašymas-Linux-branduolio modulis-1-dalis-įvadas /

* [3] Derekas Molloy: „Linux“ branduolio modulio rašymas - 2 dalis: simbolių įrenginys, http: // derekmolloy.ty / rašant-linux-branduolio-modulio-2-simbolio-prietaisą /

* [4] Derekas Molloy: „Linux“ branduolio modulio rašymas. 3 dalis: mygtukai ir šviesos diodai, http: // derekmolloy.ie / branduolio-gpio programavimo mygtukai ir ledai /

* [5] Frankas Hofmannas: „Linux Memory“ tvarkymo komandos, https: // linuxhint.com / komandos-valdyti-„Linux-memory“ /

* [6] Frankas Hofmannas: „Linux“ branduolio atminties valdymas: keiskite erdvę, https: // linuxhint.com / „Linux-memory-management-swap-space“ /

* [7] „dphys-swapfile“ paketas, skirtas „Debian GNU / Linux“, https: // paketai.debianas.org / stretch / dphys-swapfile

* [8] „Red Hat Performance Tuning Guide“, https: // prieiga.raudona KEPURĖ.lt / dokumentacija / lt-us / red_hat_enterprise_linux / 6 / html / performance_tuning_guide / s-memory-melodijos

* [9] „MariaDB“ konfigūravimas, https: // mariadb.com / kb / lt / library / configuring-swappiness /

Kaip padidinti FPS sistemoje „Linux“?
FPS reiškia Kadrai per sekundę. FPS užduotis yra išmatuoti kadrų greitį atkuriant vaizdo įrašus ar žaidimus. Paprastais žodžiais, nepertraukiamų viso ...
Populiariausi „Oculus App Lab“ žaidimai
Jei esate „Oculus“ laisvų rankų įrangos savininkas, turite žinoti, kaip krauti iš šono. Šoninis įkėlimas yra ne parduotuvėje esančio turinio įdiegimas...
10 geriausių žaidimų, kuriuos reikia žaisti naudojant „Ubuntu“
„Windows“ platforma buvo viena iš dominuojančių žaidimų platformų dėl didžiulio procento žaidimų, kurie šiandien kuriami natūraliai palaikant „Windows...