Jedro Linuxa

Razumevanje vm.zamenljivost

Razumevanje vm.zamenljivost
Jedro Linuxa je precej zapleten del programske opreme z dolgim ​​seznamom komponent, kot so moduli, vmesniki in konfiguracijske datoteke [1]. Te komponente je mogoče konfigurirati s posebnimi vrednostmi, da se doseže želeno vedenje ali način delovanja komponente [2,3,4]. Nato ta nastavitev neposredno vpliva na obnašanje in delovanje vašega sistema Linux kot celote.

Trenutne vrednosti jedra Linuxa in njegovih komponent so dostopne s pomočjo posebnega vmesnika - imenika / proc [5]. To je virtualni datotečni sistem, v katerem so posamezne datoteke v realnem času napolnjene z vrednostmi. Vrednosti predstavljajo dejansko stanje, v katerem je jedro Linuxa. Do posameznih datotek v imeniku / proc lahko dostopate z ukazom cat na naslednji način:

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

Eden od teh parametrov jedra se imenuje vm.zamenljivost. "Nadzoruje relativno težo, ki je namenjena zamenjavi izvajalnega pomnilnika, v nasprotju s spuščanjem pomnilniških strani iz predpomnilnika sistemskih strani" [6]. Od izdaje jedra Linuxa 2.6 ta vrednost je bila uvedena. Shranjena je v datoteki / proc / sys / vm / swappiness .

Uporaba zamenjave

Uporaba zamenjave [6] je bila bistveni del uporabe manjših strojev UNIX v zgodnjih devetdesetih letih. Še vedno je koristno (na primer imeti rezervno pnevmatiko v vozilu), kadar neprijetno puščanje spomina moti vaše delo. Stroj se bo upočasnil, vendar bo v večini primerov še vedno uporaben za dokončanje dodeljene naloge. Razvijalci brezplačne programske opreme so si zelo prizadevali za zmanjšanje in odpravljanje programskih napak, zato preden spremenite parametre jedra, najprej razmislite o posodobitvi na novejšo različico aplikacije in sorodnih knjižnic.

Če zaženete številna opravila, se neaktivna opravila zamenjajo z diskom, s čimer se bolje izkoristi pomnilnik z aktivnimi nalogami. Urejanje videa in druge aplikacije, ki zajemajo velik pomnilnik, imajo pogosto priporočeno količino pomnilnika in prostora na disku. Če imate starejšo napravo, ki ne more nadgraditi pomnilnika, je morda dobra začasna rešitev za vas več izmenjav (glejte [6], kako izvedeti več o tem).

Zamenjava se lahko zgodi na ločeni particiji ali v swap datoteki. Številne aplikacije zbirke podatkov imajo particijo hitrejšo in prednostno. Datotečni pristop je bolj prilagodljiv (glejte paket dphys-swapfile v Debian GNU / Linux [7]). Če imate več fizičnih naprav za zamenjavo, lahko jedro Linuxa izbere najhitreje dostopno napravo (manjša zakasnitev).

vm.zamenljivost

Privzeta vrednost vm.swappiness je 60 in predstavlja odstotek prostega pomnilnika pred aktiviranjem zamenjave. Nižja kot je vrednost, manj zamenjave je uporabljeno in več pomnilniških strani je shranjenih v fizičnem pomnilniku.

Vrednost 60 je kompromis, ki dobro deluje za sodobne namizne sisteme. Namesto tega je za strežniški sistem priporočljiva manjša vrednost. Kot poudarja priročnik Red Hat Performance Tuning [8], je za delovne obremenitve baze podatkov priporočljiva manjša vrednost zamenjave. Na primer, za zbirke podatkov Oracle Red Hat priporoča vrednost zamenjave 10. V nasprotju s tem je za podatkovne zbirke MariaDB priporočljivo, da se zamenjanost nastavi na vrednost 1 [9].

Sprememba vrednosti neposredno vpliva na delovanje sistema Linux. Določene so te vrednosti:

* 0: zamenjava je onemogočena
* 1: najmanjša količina zamenjave, ne da bi jo popolnoma onemogočili
* 10: priporočena vrednost za izboljšanje zmogljivosti, če v sistemu obstaja dovolj pomnilnika
* 100: agresivno zamenjavo

Kot je prikazano zgoraj, ukaz cat pomaga prebrati vrednost. Tudi ukaz sysctl vam daje enak rezultat:

# sysctl vm.zamenljivost
vm.zamenjava = 60
#

Upoštevajte, da je ukaz sysctl na voljo samo skrbniškemu uporabniku. Če želite začasno nastaviti vrednost v datotečnem sistemu / proc, kot sledi:

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

Kot alternativo lahko uporabite ukaz sysctl, kot sledi:

# sysctl -w vm.zamenljivost = 10

Če želite vrednost nastaviti trajno, odprite datoteko / etc / sysctl.conf kot skrbniški uporabnik in dodajte naslednjo vrstico:

vm.zamenljivost = 10

Zaključek

Vse več uporabnikov linuxa uporablja virtualne stroje. Vsak ima poleg hipervizorja, ki dejansko nadzoruje strojno opremo, tudi svoje jedro. Navidezni stroji imajo zanje ustvarjene navidezne diske, zato bo sprememba nastavitve znotraj navideznega stroja imela nedoločene rezultate. Najprej poskusite s spreminjanjem vrednosti jedra hipervizorja, saj dejansko nadzoruje strojno opremo v vaši napravi.

Za starejše računalnike, ki jih ni več mogoče nadgraditi (že imajo največ podprtega pomnilnika), lahko razmislite o namestitvi majhnega polprevodniškega diska v napravo, da ga lahko uporabite kot dodatno zamenjavno napravo. To bo očitno postalo potrošni material, saj spominske celice odpovejo zaradi številnih zapisov, lahko pa podaljša življenjsko dobo stroja za eno leto ali več za zelo nizke stroške. Manjša zakasnitev in hitro branje bosta dala veliko boljšo zmogljivost kot zamenjava z običajnim diskom in vmesne rezultate RAM-a. To bi vam moralo omogočiti uporabo nekoliko nižjega vm.vrednosti zamenjave za optimalno delovanje. Morali boste eksperimentirati. Naprave SSD se hitro spreminjajo.

Če imate več naprav za zamenjavo, razmislite o tem, da bi napravo RAID črtali podatke po razpoložljivih napravah.

Zamenjavo lahko spremenite brez ponovnega zagona naprave, kar je velika prednost pred drugimi operacijskimi sistemi.

Poskusite vključiti samo storitve, ki jih potrebujete za svoje podjetje. To bo zmanjšalo potrebe po pomnilniku, izboljšalo zmogljivost in olajšalo vse.

Zadnja opomba: Napajalnim napravam boste dodali obremenitev. Želeli boste spremljati njihove temperature. Pregreti sistem bo znižal frekvenco procesorja in upočasnil delovanje.

Zahvala

Avtor bi se rad zahvalil Geroldu Rupprechtu in Zoleki Hatitongwe za kritične pripombe in komentarje med pripravo tega članka.

Povezave in reference

* [1] Vadnica za jedro Linuxa za začetnike, https: // linuxhint.com / linux-kernel-tutorial-začetniki /

* [2] Derek Molloy: Pisanje modula jedra Linuxa - 1. del: Uvod, http: // derekmolloy.tj / pisanje-linux-jedrnega-modula-del-1-uvod /

* [3] Derek Molloy: Pisanje modula jedra Linuxa - 2. del: Naprava z znaki, http: // derekmolloy.tj / pisanje-linux-jedrnega-modula-del-2-a-znak-naprava /

* [4] Derek Molloy: Pisanje modula jedra Linuxa - 3. del: Gumbi in LED, http: // derekmolloy.tj / kernel-gpio-programiranje-gumbi-in-led-diode /

* [5] Frank Hofmann: Ukazi za upravljanje pomnilnika Linux, https: // linuxhint.com / ukazi za upravljanje-linux-pomnilnik /

* [6] Frank Hofmann: Upravljanje pomnilnika jedra Linuxa: Swap Space, https: // linuxhint.com / linux-memory-management-swap-space /

* [7] paket dphys-swapfile za Debian GNU / Linux, paketi https: //.debian.org / stretch / dphys-swapfile

* [8] Red Hat Performance Tuning Guide, https: // access.rdeč klobuk.com / documentation / en-us / red_hat_enterprise_linux / 6 / html / performance_tuning_guide / s-memory-tunables

* [9] Konfiguriranje MariaDB, https: // mariadb.com / kb / sl / library / configuring-swappiness /

Najboljših 5 izdelkov z ergonomsko računalniško miško za Linux
Ali dolgotrajna uporaba računalnika povzroča bolečine v zapestju ali prstih? Ali imate trde sklepe in bi se morali neprestano tresti z rokami? Ali čut...
How to Change Mouse and Touchpad Settings Using Xinput in Linux
Most Linux distributions ship with “libinput” library by default to handle input events on a system. It can process input events on both Wayland and X...
S pomočjo gumba X-Mouse Button Control različno prilagodite gumbe miške za različno programsko opremo
Mogoče potrebujete orodje, ki bi lahko spremenilo nadzor miške z vsako aplikacijo, ki jo uporabljate. V tem primeru lahko preizkusite aplikacijo z ime...