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 [~] # w21: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 [~] # nproc16
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:
- Obremenitev se izraža v čakalnih procesih in nitih
- To ni trenutna vrednost, prej povprečje in
- Njegova interpretacija mora vključevati število procesorskih jeder in
- Lahko preveč napihne V / I čaka kot bere disk
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.