Naredba top (1)

linuxUkoliko želite provjeriti kako se u realnom vremenu troše resursi na vašem poslužitelju, praćenje procesa i memorije olakšat će vam naredba top. U sljedećih par članaka pregledat ćemo mogućnosti i ispis naredbe te objasniti njene pojedine djelove.

 

sudo top

top

U ovom članku slijedi, liniju po liniju, objašnjenje prvog dijela ispisa:

1. linija

top - 09:50:38 up 27 days, 18:09,  2 users,  load average: 0.06, 0.03, 0.00

09:50:38 – trenutno vrijeme
up 27 days, 18:09 – poslužitelj je u pogonu već 27 dana 18 sati i 9 minuta
2 users – trenutni broj korisnika
load average: 0.06, 0.03, 0.00 – prosječan broj aktivnih procesa u zadnjih 1, 5 i 15 minuta

Ova linija je praktički ispis linux naredbe uptime. Prikaz ove linije u naredbi top može se isključiti/uključiti pritiskom na tipku l. Zanimljivo je obratiti pozornost na parametar "load average"koji nam govori koliko je procesa u navedena tri intervala koristilo ili tražilo korištenje CPU-a. Taj broj je prilično relevantan pokazatelj opterećenja poslužitelja. Kako bi analizirali njegovu vrijednost, broj je potrebno normalizirati s brojem procesora.

Primjerice, load average vrijednosti 1 na jednoprocesorskom računalu je idealno opterećenje procesora. To bi značilo da je procesor u potpunosti opterećen, ali i da su svi procesi koji su zatražili njegovo korištenje to vrijeme i dobili. Ukoliko je broj veći od jedan, to znači da je broj procesa koji su zatražili korištenje procesora veći nego što mu dopuštaju vremenski intervali korištenja, odnosno procesor je zagušen zahtjevima. U našem slučaju je average load vrlo mali, gotovo blizu nule, što bi značilo da je ovaj poslužitelj u trenutku nastanka screenshota prilično neopterećen.

Na višeprocesorskom računalu možemo zamisliti sljedeću situaciju: load average: 1.39, 2.62, 2.45. Ukoliko se, primjerice, radi o četveroprocesorskom računalu možemo kazati da je prosječna potražnja za procesorskim vremenom u zadnjih 1 minutu bila otprilike 35%, u zadnjih 5 minuta otprilike 65%, a u zadnjih 15 minuta otprilike 61%, što bi značilo da su procesori prosječno opterećeni.

2. linija

Tasks:  88 total,   2 running,  86 sleeping,   0 stopped,   0 zombie

Prikazuje broj aktivnih, spavajućih, zombie i zaustavljenih procesa.

3. linija

Cpu(s):  20.3%us,  2.7%sy,  0.0%ni, 74.8%id,  2.3%wa,  0.0%hi,  0.0%si,  0.0%st

Prikazuje postotak vremena koje je procesor proveo izvršavajući aktivne procese. Ovo je razbijeno na postotke za pojedina područja:
user mod (us) – nesistemski (korisnički) programi – Ovdje bi trebao biti najveći dio vremena procesora. Tu su uključeni svi korisnički programi poput web, mail ili ftp servisa. Uobičajeno je da se ovaj parametar dinamički mijenja ovisno o količini korisnika na poslužitelju. Primjerice, ukoliko dosta posjetitelja istovremeno posjeti web stranice koje servisira naš poslužitelj, ovaj parametar će, u tom trenutku, znatno porasti.
sistemski modu (sy) – sistemski programi (kernel) – Ovaj postotak bi se u normalno radu trebao zadržati na malim vrijednostima, pa njegovo povećanje može biti indikacija problema.
nice (ni) – vrijeme provedeno na programe čiji je prioritet izvršenja promijenjen naredbom nice
idle (id) – neiskorišteno procesorsko vrijeme – Veliki idle time ne znači ujedno i da je poslužitelj podopterećen. Ukoliko se na poslužitelju slabijih procesorskih mogućnosti dogodi prethodno navedena situacija kada, primjerice, 20-tak korisnika u istoj sekundi zatraže dinamički generiranu web stranicu, vrlo je velika vjerovatnost da će idle time u tom trenutku pasti na 0, a poslužitelj neće biti u stanju pravovremeno pružiti uslugu.
CPU IO vrijeme čekanja (wa) – postotak vremena koje procesor provede u čekajući na IO događaje (npr. čitanje s diska ili mreže). Velike vrijednosti mogu ukazivati da eventualni problem u radu ima veze s, primjerice, diskom.
hardwareski interrupti (hi) – vrijeme provedeno na posluživanje hardwareskih interrupta
softwareski interrupti (si) - vrijeme provedeno na posluživanje softwareskih interrupta
steal time (st) – vrijeme virtualnog procesora provedeno u nenamjernom čekanju dok hypervisor poslužuje drugi virtualni procesor

Druga i treća linija mogu se u radu isljučiti/uključiti pritiskom na tipku t.

4. i 5. linija

Ove linije su ekvivalent naredbi free. Četvrta linija prikazuje stanje memorije poslužitelja. U našem slučaju vidi se da poslužitelj ima 1GB ukupne memorije, Sljedeći stupac pokazuje da je zauzeto 1020792k, a treći da je 14732k slobodno. Ovdje treba napomenuti da je zazuzeće memorije kompleksan podatak. U zauzetu memoriju linuxa treba ubrojiti, bolje rečeno, oduzeti posljednji stupac iz prikaza. Naime, stanje zauzete memorije ubraja i buffers prikazan u zadnjem stupcu četvrte linije te cached prikazanu u zadnjem stupcu pete linije. Linux dinamički alocira buffer i cached memoriju po potrebi, primjerice pri svakom čitanju podataka s diska, a s nakanom da se što više podataka drži u cache-u kako bi im se omogućio brži pristup. U slučaju da neka korisnička aplikacija zatraži memoriju, linux smanjuje cache memoriju i dodjeljuje je aplikaciji. Dakle, podatak da naše računalo ima samo 14732k slobodno u stvari nije točan, jer se bilo kojem programu u svakom trenutku može osloboditi dio memorije u cacheu.

Možda čak bitniji podatak za kvalitetan rad računala je swap iz linije 5. Naime, računalo s dovoljnom količinom memorije ne bi nikad trebalo puniti swap memoriju na disku. Povećanje used swap memorije govori o tome da aplikacije zahtjevaju više memorije od postojeće, te da bi administrator trebao razmisliti o nadogradnji RAM-a.

Četvrta i peta linija mogu se u radu isljučiti/uključiti pritiskom na tipku m.

U sljedećem nastavku ćemo analizirati ispise pojedinih procesa, te način na koji taj ispis prilagoditi potrebama.

Vote: 
5
Vaša ocjena: Nema Average: 5 (1 vote)