Spremljanje

Razumevanje povprečja obremenitve v Linuxu

Razumevanje povprečja obremenitve v Linuxu
Povprečje obremenitve je merjenje količine dela v primerjavi s prostimi cikli procesorja, ki so na voljo v sistemskem procesorju. V tem članku bom opredelil izraz, prikazal, kako Linux izračuna to vrednost, nato pa vpogled v to, kako razlagati obremenitev sistema.

Različne metode za izračun obremenitve

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

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

V operacijskem sistemu Windows to dobimo s preučevanjem, kako "zaseden" je Proces nedejavnosti sistema je in z uporabo inverze predstavlja sistemsko obremenitev. Če se na primer nedejavna nit izvaja 99% časa, bi bila obremenitev procesorja v sistemu Windows 1%. To vrednost je enostavno razumeti, vendar vsebuje manj splošnih podrobnosti o resničnem stanju sistema.

V Linuxu je povprečje obremenitve namesto tega predstavljeno z decimalno številko, ki se začne pri 0.00. Vrednost lahko približno določimo kot število procesov v zadnji minuti, ki so morali počakati, da se izvedejo. Za razliko od sistema Windows povprečje obremenitve Linuxa ni takojšnje merjenje. Obremenitev je podana v treh vrednostih - enominutno povprečje, petminutno povprečje in petnajstminutno povprečje.

Razumevanje povprečja obremenitve v Linuxu

Sprva se ta dodatna plast podrobnosti zdi nepotrebna, če preprosto želite vedeti trenutno stanje obremenitve procesorja v vašem sistemu. Ker pa so podana povprečja treh časovnih obdobij, ne pa takojšnje merjenje, lahko v enem pogledu treh številk dobite bolj popolno predstavo o spremembi obremenitve sistema skozi čas

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

root @ virgo [~] # w
21:08:43 do 38 dni, 4:34, 4 uporabniki, povprečna obremenitev: 3.11, 2.75, 2.70

Preostali del ukaza bo prikazal, kdo je prijavljen in kaj izvaja, toda za naše namene so te informacije nepomembne, zato sem jih odrezal z zgornjega zaslona.

V idealnem sistemu noben postopek ne bi smel zadržati drug postopek (ali nit), ampak v enem procesorskem sistemu, to se zgodi, ko je obremenitev nad 1.00.

Besede "enoprocesorski sistem" so tu neverjetno pomembne. Če ne uporabljate starodavnega računalnika, ima vaša naprava verjetno več procesorskih jeder. V napravi, v kateri sem, imam 16 jeder:

root @ virgo [~] # nproc
16

V tem primeru je povprečna obremenitev 3.11 sploh ni zaskrbljujoč. To preprosto pomeni, da je bilo za izvajanje pripravljenih nekaj več kot treh procesov, za njihovo izvajanje pa so bila prisotna jedra CPU. Pri tem določenem sistemu bi morala obremenitev doseči 16, da bi se upoštevala pri "100%".

Če želite to prevesti v sistemsko obremenitev, ki temelji na odstotkih, lahko uporabite ta preprost, če ne celo neumen ukaz:

mačka / proc / loadavg | rez -c 1-4 | odmev "lestvica = 2; ($ (Ta zaporedja ukazov izolirajo 1-minutno povprečje z rezanjem in ga odmevajo, deljeno s številom jeder procesorja, prek bc, kalkulatorja ukazne vrstice, da izpeljejo odstotek.

Ta vrednost nikakor ni znanstvena, zagotavlja pa približen približek obremenitve procesorja v odstotkih.

Minuta za učenje, življenjska doba za obvladovanje

V prejšnjem razdelku sem dal "100%" primer obremenitve 16.0 na 16 CPU jedrnem sistemu v narekovajih, ker je izračun obremenitve v Linuxu nekoliko bolj nejasen kot Windows. Skrbnik sistema mora upoštevati, da:

Zaradi tega doseganje roke obremenitve procesorja v sistemu Linux ni povsem empirična zadeva. Tudi če bi bilo, samo obremenitev procesorja ni zadostno merilo celotne izrabe sistemskih virov. Kot tak bo izkušeni skrbnik Linuxa upošteval obremenitev procesorja v soglasju z drugimi vrednostmi, kot sta čakanje V / I in odstotek jedra v primerjavi s sistemskim časom.

V / I počakajte

I / O čakanje je najlažje videti z ukazom “top”:

Na zgornjem posnetku zaslona sem poudaril vrednost V / I čakanja. To je odstotek časa, ko je CPU čakal na dokončanje vhodnih ali izhodnih ukazov. To ponavadi kaže na veliko aktivnost diska. Čeprav sam visok odstotek čakanja morda ne bo bistveno poslabšal nalog, vezanih na CPU, bo zmanjšal zmogljivost V / I za druge naloge in bo sistem občutil počasno.

Veliko čakanje V / I brez očitnega vzroka lahko kaže na težavo z diskom. Z ukazom »dmesg« preverite, ali je prišlo do napak.

Kernel vs. Sistemski čas

Zgornje poudarjene vrednosti predstavljajo čas uporabnika in jedra (sistema). To je razčlenitev celotne porabe procesorskega časa med uporabniki (tj.e. aplikacije itd.) in jedro (tj.e. interakcija s sistemskimi napravami). Večji uporabniški čas bo pokazal večjo uporabo CPU v programih, kjer bo višji čas jedra nakazal več sistemske obdelave.

Dokaj povprečna obremenitev

Učenje razmerja med povprečjem obremenitve in dejansko zmogljivostjo sistema traja nekaj časa, a kmalu boste opazili jasno povezanost. Oboroženi z zapletenostmi meritev uspešnosti sistema, boste lahko sprejemali boljše odločitve o nadgradnji strojne opreme in izkoriščanju programskih virov.

Vadnica za bitko za Wesnoth
Bitka za Wesnoth je ena izmed najbolj priljubljenih odprtokodnih strateških iger, ki jih lahko trenutno igrate. Ne samo, da se ta igra razvija že zelo...
0 A.D. Vadnica
Od številnih strateških iger tam 0 A.D. uspe izstopati kot izčrpen naslov in zelo globoka, taktična igra, čeprav je odprtokodna. Razvoj igre deluje ze...
Vadnica za Unity3D
Uvod v Unity 3D Unity 3D je močan motor za razvoj iger. Navzkrižna platforma vam omogoča ustvarjanje iger za mobilne naprave, splet, namizje in konzol...