Različite metode izračunavanja opterećenja
Prije nego što uđemo u prosjeke opterećenja Linuxa, moramo istražiti različite načine na koje se izračunava opterećenje i pozabaviti se najčešćim mjerenjem opterećenja procesora - postotak.
Windows računa opterećenje drugačije od Linuxa, a budući da je Windows u prošlosti bio popularniji na radnoj površini, Windows definicija učitavanja uglavnom razumije većinu korisnika računala. Većina korisnika Windowsa vidjela je kako se učitavanje sustava u upravitelju zadataka prikazuje kao postotak u rasponu od 0% do 100%.
U sustavu Windows to se dobiva ispitivanjem koliko su "zauzeti" Proces mirovanja sustava je i koristi inverzno za predstavljanje opterećenja sustava. Na primjer, ako se neaktivna nit izvršava 99% vremena, opterećenje procesora u sustavu Windows bilo bi 1%. Ovu je vrijednost lako razumjeti, ali pruža manje općenitih detalja o stvarnom statusu sustava.
U Linuxu je prosjek opterećenja umjesto toga predstavljen decimalnim brojem koji počinje s 0.00. Vrijednost se može približno definirati kao broj procesa tijekom protekle minute koji su morali čekati svoj red za izvršenje. Za razliku od Windowsa, prosjek učitavanja Linuxa nije trenutno mjerenje. Opterećenje se daje u tri vrijednosti - prosjek od jedne minute, prosjek od pet minuta i prosjek od petnaest minuta.
Razumijevanje prosjeka opterećenja u Linuxu
U početku se čini da je ovaj dodatni sloj detalja nepotreban ako jednostavno želite znati trenutno stanje opterećenja procesora u vašem sustavu. No budući da su dani prosjeci za tri vremenska razdoblja, a ne trenutno mjerenje, možete dobiti potpuniju predstavu o promjeni opterećenja sustava tijekom vremena jednim pogledom od tri broja
Prikaz prosjeka opterećenja je jednostavan. Na naredbenom retku možete koristiti razne naredbe. Jednostavno koristim naredbu "w":
korijen @ djevica [~] # w21:08:43 gore 38 dana, 4:34, 4 korisnika, prosjek opterećenja: 3.11, 2.75, 2.70
U ostatku naredbe prikazat će se tko je prijavljen i što izvršavaju, ali za naše su potrebe ovi podaci nebitni, pa sam ih isjekao s gornjeg zaslona.
U idealnom sustavu nijedan proces ne bi trebao zadržavati drugi postupak (ili nit), već u jednom procesorskom sustavu, to se događa kada opterećenje prelazi 1.00.
Riječi "jednoprocesorski sustav" ovdje su nevjerojatno važne. Ako ne koristite drevno računalo, vaš stroj vjerojatno ima više procesorskih jezgri. U stroju na kojem sam, imam 16 jezgri:
korijen @ djevica [~] # nproc16
U ovom slučaju, prosječno opterećenje 3.11 uopće nije alarmantan. To jednostavno znači da je nešto više od tri procesa bilo spremno za izvršenje i da su CPU jezgre bile prisutne za njihovo izvršavanje. Na ovom određenom sustavu, opterećenje bi trebalo doseći 16 da bi se uzelo u obzir pri "100%".
Da biste to preveli na opterećenje sustava temeljeno na postotku, mogli biste upotrijebiti ovu jednostavnu, ako ne i tupu naredbu:
mačka / proc / loadavg | izrezati -c 1-4 | odjek "ljestvica = 2; ($ (Ova sekvenca naredbi izolira 1-minutni prosjek rezanjem i odjekuje ga, podijeljeno s brojem CPU jezgri, kroz bc, kalkulator naredbenog retka, kako bi se izvukao postotak.Ova vrijednost ni u kojem slučaju nije znanstvena, ali pruža grubu aproksimaciju opterećenja procesora u postocima.
Minuta za učenje, život za svladavanje
U prethodnom odjeljku stavio sam primjer "100%" opterećenja od 16.0 na 16 jezgri CPU-a u navodnicima, jer je izračun opterećenja u Linuxu malo nebulozniji od Windowsa. Administrator sustava mora imati na umu da:
- Opterećenje se izražava u procesima čekanja i nitima
- To nije trenutna vrijednost, već prosjek i
- Njegova interpretacija mora uključivati broj CPU jezgri i
- Može pretjerano napuhati I / O čekanje poput čitanja s diska
Zbog toga rukovanje opterećenjem procesora na Linux sustavu nije u potpunosti empirijska stvar. Čak i da jest, samo opterećenje procesora nije adekvatno mjerenje ukupne iskorištenosti resursa sustava. Kao takav, iskusni Linux administrator razmotrit će opterećenje CPU-a zajedno s drugim vrijednostima kao što su I / O čekanje i postotak jezgre u odnosu na sistemsko vrijeme.
I / O Čekaj
Ulazno-izlazno čekanje najlakše se vidi putem naredbe "top":
Na gornjoj snimci zaslona istaknuo sam vrijednost I / O čekanja. Ovo je postotak vremena koje je CPU čekao da završi ulazne ili izlazne naredbe. To obično ukazuje na veliku aktivnost diska. Iako sam visok postotak čekanja možda neće značajno pogoršati zadatke vezane uz CPU, smanjit će I / O performanse za druge zadatke i učinit će da se sustav osjeća tromo.
Visoko I / O čekanje bez očitog uzroka može ukazivati na problem s diskom. Upotrijebite naredbu "dmesg" da vidite jesu li se dogodile pogreške.
Kernel vs. Sistemsko vrijeme
Gore istaknute vrijednosti predstavljaju vrijeme korisnika i jezgre (sustava). Ovo je raščlamba ukupne potrošnje CPU vremena od strane korisnika (tj.e. aplikacije itd.) i jezgru (tj.e. interakcija sa sustavnim uređajima). Veće korisničko vrijeme ukazat će na veću upotrebu CPU-a kod programa gdje će veće vrijeme jezgre ukazivati na više obrade na razini sustava.
Prilično prosječno opterećenje
Učenje odnosa prosjeka opterećenja sa stvarnim performansama sustava zahtijeva vrijeme, ali uskoro ćete vidjeti jasnu korelaciju. Naoružani zamršenošću metrike performansi sustava, moći ćete donijeti bolje odluke o nadogradnji hardvera i iskorištavanju programskih resursa.