Razumevanje povprečja nalaganja v Linuxu

Understanding Load Average Linux



Povprečje obremenitve je meritev količine dela v primerjavi s prostimi cikli procesorja, ki so na voljo v sistemskem procesorju. V tem članku bom opredelil izraz, pokazal, kako Linux izračuna to vrednost, in nato predstavil, kako razlagati obremenitev sistema.

Preden se potopimo v povprečje obremenitve Linuxa, moramo raziskati različne načine izračuna obremenitve in obravnavati najpogostejšo meritev obremenitve procesorja - odstotek.







Windows izračuna obremenitev drugače kot Linux, in ker je bil Windows zgodovinsko bolj priljubljen na namizju, definicijo obremenitve sistema Windows večina uporabnikov računalnikov na splošno razume. Večina uporabnikov operacijskega sistema Windows je videla, da je obremenitev sistema v upravitelju opravil prikazana kot odstotek od 0% do 100%.



V operacijskem sistemu Windows to ugotovimo tako, da preučimo, kako zaposlen je Postopek mirovanja sistema is in obratno za prikaz obremenitve sistema. Na primer, če nit v prostem teku izvaja 99% časa, bi bila obremenitev procesorja v sistemu Windows 1%. Ta vrednost je enostavna za razumevanje, vendar vsebuje manj splošnih podrobnosti o resničnem stanju sistema.



V Linuxu je povprečje obremenitve predstavljeno z decimalnim številom, ki se začne pri 0,00. Vrednost je lahko okvirno opredeljena kot število procesov v zadnji minuti, ki so morali čakati na svojo izvedbo. Za razliko od Windows, povprečje obremenitve Linuxa ni takojšnja meritev. Obremenitev je podana v treh vrednostih: enominutno povprečje, petminutno povprečje in petnajstminutno povprečje.





Razumevanje povprečja obremenitve v Linuxu

Ta dodatna plast podrobnosti se sprva zdi nepotrebna, če preprosto želite vedeti trenutno stanje obremenitve procesorja v vašem sistemu. Ker pa so podana povprečja treh časovnih obdobij, namesto takojšnje meritve, lahko dobite popolnejšo predstavo o spremembi obremenitve sistema skozi čas v enem samem pogledu na tri številke

Prikaz povprečja obremenitve je preprost. V ukazni vrstici lahko uporabite različne ukaze. Preprosto uporabim ukaz w:



koren@Devica[~]# in
enaindvajset: 08:43gor38dnevi,4:3. 4,4 uporabniki, povprečna obremenitev:3.11,2,75,2,70

Preostali ukaz bo prikazal, kdo je prijavljen in kaj izvaja, vendar za naše namene te informacije niso pomembne, zato sem jih izrezal z zgornjega zaslona.

V idealnem sistemu noben proces ne sme biti zadržan z drugim procesom (ali niti), vendar v enem procesorskem sistemu, to se zgodi, ko obremenitev preseže 1,00.

Besede enoprocesorski sistem so tukaj neverjetno pomembne. Razen če uporabljate starodaven računalnik, ima vaš stroj verjetno več jeder procesorja. V stroju, ki ga uporabljam, imam 16 jeder:

koren@Devica[~]# nproc
16

V tem primeru povprečje obremenitve 3,11 sploh ni zaskrbljujoče. To preprosto pomeni, da so bili za izvedbo pripravljeni malo več kot trije procesi in prisotna so CPU jedra za njihovo izvedbo. V tem posebnem sistemu bi morala obremenitev doseči 16, da bi jo upoštevali pri 100%.

Če želite to prevesti v odstotno obremenitev sistema, lahko uporabite ta preprost, če ne celo tup ukaz:

mačka /odstotkov/loadavg| rezati -c 1-4 | vrgel ven 'lestvica = 2; ($ (/`nproc`) * 100 ' | pr -

Ta zaporedja ukazov izolira 1-minutno povprečje prek izreza in ga odmeva, deljeno s številom jeder procesorja, prek bc, kalkulatorja ukazne vrstice, da se izvede odstotek.

Ta vrednost nikakor ni znanstvena, vendar daje grob približek obremenitve procesorja v odstotkih.

Minuta za učenje, vse življenje za obvladovanje

V prejšnjem razdelku sem 100 -odstotni primer obremenitve 16,0 na jedrnem sistemu s 16 CPE dal v narekovaje, ker je izračun obremenitve v Linuxu nekoliko bolj meglen kot v sistemu Windows. Skrbnik sistema mora upoštevati:

  • Obremenitev je izražena v čakalnih procesih in nitih
  • To ni trenutna vrednost, ampak povprečje in
  • Njegova razlaga mora vključevati število jeder procesorja in
  • Lahko preveč napihne V/I, kot pri branju diska

Zaradi tega pridobivanje obremenitve procesorja v sistemu Linux ni povsem empirična zadeva. Tudi če bi bilo tako, samo obremenitev procesorja ni primerno merilo celotne porabe sistemskih virov. Tako bo izkušen skrbnik Linuxa upošteval obremenitev procesorja skupaj z drugimi vrednostmi, kot so čakanje na V/I in odstotek jedra v primerjavi s sistemskim časom.

V/I Počakaj

V/I čakanje je najlažje videti z zgornjim ukazom:

Na zgornjem posnetku zaslona sem poudaril vrednost čakanja na V/I. To je odstotek časa, v katerem je CPU čakal na dokončanje ukaznih ali izhodnih ukazov. To ponavadi kaže na visoko aktivnost diska. Čeprav samo visok odstotek čakanja morda ne bo bistveno poslabšal nalog, vezanih na procesor, bo zmanjšal vhodno/izhodne zmogljivosti za druga opravila in naredil sistem počasen.

Čakanje na visok vhod/izhod brez očitnega razloga lahko kaže na težavo z diskom. Z ukazom dmesg preverite, ali je prišlo do napak.

Jedro proti sistemskemu času

Zgoraj označene vrednosti predstavljajo čas uporabnika in jedra (sistema). To je razčlenitev celotne porabe časa procesorja s strani uporabnikov (tj. Aplikacij itd.) In jedra (tj. Interakcije s sistemskimi napravami). Višji čas uporabnika bo pokazal večjo porabo procesorja pri programih, kjer bo večji čas jedra pomenil večjo obdelavo na ravni sistema.

Precej povprečna obremenitev

Učenje razmerja med povprečjem obremenitve in dejansko zmogljivostjo sistema traja nekaj časa, vendar boste kmalu videli posebno povezavo. Oboroženi s podrobnostmi meritev zmogljivosti sistema, se boste lahko bolje odločali o nadgradnjah strojne opreme in uporabi programskih virov.