Како користити Линук топ команду (и разумети њен излаз)

Linux top komanda je moćan alat operativnih sistema sličnih Unix-u. Njen prikaz pun je korisnih informacija o procesima koji se izvršavaju na vašem sistemu i upotrebi resursa. Ali, jeste li znali da podržava i boje, isticanje, pa čak i jednostavne grafičke prikaze?

Kontrolna tabla puna informacija

Top komanda postoji od 1984. godine, i pojavilo se mnogo njenih varijanti. Za ovaj članak koristimo Ubuntu 18.04 sa svim primenjenim zakrpama i verziju 3.3.12 top-a. Sve smo uporedili na još dva testna računara, na jednom je bio Fedora, a na drugom Manjaro.

Podrazumevani top prikaz nagomilava što je više informacija moguće u prozoru terminala. Informacije su neophodne za administraciju, tako da je ovo dobra stvar. Jedna od osobina dobrog administratora sistema jeste sposobnost da prepozna probleme u nastajanju i da ih reši pre nego što utiču na uslugu. Top vam daje kontrolnu tablu sa mnogim različitim sistemskim pokazateljima koji vam pomažu da uradite upravo to.

Ekran je najbolje opisati kao funkcionalan, a ne intuitivan, a skraćenica ima mnogo. Kada se prvi put susretnete sa top-om, osećate se pretrpano, zagonetno i odbojno. Međutim, sa nekoliko pritisaka na tastere, možete podesiti sadržaj i format ekrana u skladu sa onim što vam je važno.

Proverite svoju verziju top-a

Da biste proverili koju verziju top-a imate, unesite sledeće u prozor terminala:

top -v

Ako je vaša verzija daleko iza 3.3.12, možda neće podržavati sve funkcije koje ćemo spomenuti.

Podrazumevani ekran

Možete pokrenuti top komandu tako što ćete uneti sledeće i pritisnuti “Enter”:

top

Podrazumevani ekran sadrži dve oblasti informacija: oblast sažetka (ili kontrolnu tablu) i oblast zadataka (ili listu procesa). Po podrazumevanoj vrednosti, top ažurira svoj ekran svake tri sekunde — primetićete blago treperenje kada se to desi.

Prvi red brojeva na kontrolnoj tabli uključuje vreme, koliko dugo je računar radio, broj prijavljenih korisnika i koliki je bio prosek opterećenja u poslednjih jedan, pet i 15 minuta. Drugi red prikazuje broj zadataka i njihova stanja: pokrenut, zaustavljen, spava ili zombi.

Treći red prikazuje sledeće vrednosti centralne procesorske jedinice (CPU):

us: Količina vremena koju CPU troši na izvršavanje procesa za korisnike u „korisničkom prostoru“.
si: Količina vremena provedenog u pokretanju sistemskih procesa „prostora jezgra“.
ni: Količina vremena utrošenog na izvršavanje procesa sa ručno podešenom „nice“ vrednošću.
id: Količina vremena mirovanja CPU-a.
wa: Količina vremena koju CPU provede čekajući da se I/O završi.
hi: Količina vremena utrošenog na servisiranje hardverskih prekida.
si: Količina vremena utrošenog na servisiranje softverskih prekida.
st: Količina izgubljenog vremena zbog pokretanja virtuelnih mašina („krađa vremena“).

Četvrti red prikazuje ukupan iznos (u kibibajtima) fizičke memorije i koliko je slobodno, iskorišćeno, baferovano ili keširano.

Peti red prikazuje ukupan iznos (takođe u kibibajtima) zamenljive memorije i koliko je slobodno, iskorišćeno i dostupno. Ovo poslednje uključuje memoriju za koju se očekuje da se može povratiti iz keša.

Naslovi kolona na listi procesa su sledeći:

PID: ID procesa.
USER: Vlasnik procesa.
PR: Prioritet procesa.
NI: „Nice“ vrednost procesa.
VIRT: Količina virtuelne memorije koju proces koristi.
RES: Količina rezidentne memorije koju proces koristi.
SHR: Količina deljene memorije koju koristi proces.
S: Status procesa. (Pogledajte donju listu za vrednosti koje ovo polje može imati).
%CPU: Udeo CPU vremena koje proces koristi od poslednjeg ažuriranja.
%MEM: Udeo korišćene fizičke memorije.
TIME+: Ukupno CPU vreme koje zadatak koristi u stotinkama sekunde.
COMMAND: Naziv komande ili komandna linija (ime + opcije).

Memorijske vrednosti su prikazane u kibibajtima. Kolona COMMAND je van ekrana, desno — nije se uklapala na gornju sliku, ali videćemo je uskoro.

Status procesa može biti jedan od sledećih:

D: Neprekidan san
R: Pokrenut
S: Spava
T: Tražen (zaustavljen)
Z: Zombi

Pritisnite Q da izađete iz top-a.

Pomeranje ekrana

Možete pritisnuti tastere sa strelicama nagore ili nadole, Home, End i Page Up ili Down da biste se kretali gore-dole i pristupili svim procesima.

Pritisnite strelicu nalevo ili nadesno da pomerite listu procesa u stranu. Ovo je korisno da vidite sve kolone koje se ne uklapaju u okvire prozora terminala.

Na slici ispod, nekoliko puta smo pritisnuli strelicu nadesno da bismo videli kolonu COMMAND.

Promena numeričkih jedinica

Hajde da promenimo jedinice prikaza na razumne vrednosti. Pritisnite veliko E za kretanje kroz jedinice koje se koriste za prikaz vrednosti memorije u ovim opcijama: kibibajti, mebibajti, gibibajti, tebibajti, pebibajti i eksbibajti. Jedinica koja se koristi je prva stavka u redovima četiri i pet.

Pritisnite malo slovo “e” da uradite istu stvar za vrednosti na listi procesa: kibibajti, mebibajti, gibibajti, tebibajti i pebibajti.

Pritisnuli smo E da podesimo memorijske jedinice kontrolne table na gibibajte i “e” da postavimo memorijske jedinice liste procesa na mebibajte.

Promena sadržaja rezimea

Možete promeniti podešavanja prikaza za linije na kontrolnoj tabli ili ih potpuno ukloniti.

Pritisnite l da biste uključili ili isključili liniju sažetka opterećenja (prvi red). Uklonili smo liniju sažetka opterećenja na slici ispod.

Ako imate višejezgrarni CPU, pritisnite 1 da biste promenili prikaz i videli pojedinačne statistike za svaki CPU. Na našem računaru postoje četiri procesora. Pritisnemo 1 da vidimo koliko naporno svaki od njih radi.

Naravno, ovo zauzima više prostora na ekranu unutar prozora terminala.

Možete pritisnuti “t” da biste zamenili CPU displeje na jednostavne ASCII grafikone koji pokazuju procenat korišćenja za svaki CPU.

Za svaki CPU, top prikazuje tri broja i grafikon. S leva na desno, brojevi su sledeći:

Kombinovani us i ni procenat (korisnički prostor+zadaci sa nestandardnim “nice” podešavanjima).
Procenat si (prostor jezgra).
Ukupno (zaokruženo na ceo broj).

Ponovo pritisnite “t” da biste promenili prikaz grafikona na pune blok znakove.

Pritisnite “t” još jednom da biste u potpunosti uklonili ekran CPU-a i liniju rezimea zadatka.

Pritisnite “m” da biste ciklično menjali memoriju i zamenili memorijske linije kroz različite opcije prikaza. Prvi pritisak zamenjuje statistiku ASCII grafikonom.

Drugi pritisak menja grafikon u blok znakove.

Pritisnite “m” još jednom da biste u potpunosti uklonili CPU linije.

Ako želite, možete istovremeno da vidite grafikone procesora i memorije. Samo pritisnite “t” i “m” dok ne dobijete kombinaciju koju želite.

Boja i isticanje

Možete pritisnuti “z” da dodate boju ekranu.

Kada razmišljate o top-u, verovatno ne mislite na ekrane u boji i ASCII grafikone, ali oni su ugrađeni.

Pritisnite “i” da biste istakli pokrenute zadatke na listi procesa. Pritiskom na “x” se ističe kolona koja se koristi za sortiranje liste procesa. Možete da prelazite između podebljanog i obrnutog isticanja teksta pritiskom na “b”.

Sortiranje po kolonama

Po podrazumevanoj vrednosti, lista procesa je sortirana po koloni %CPU. Kolonu za sortiranje možete promeniti pritiskom na sledeće:

P: Kolona %CPU.
M: Kolona %MEM.
N: Kolona PID.
T: Kolona TIME+.

Na slici ispod, lista procesa je sortirana po PID koloni.

Pogledajte punu komandnu liniju

Pritiskom na “c” prebacujete kolonu COMMAND između prikaza naziva procesa i pune komandne linije.

Da biste videli „stablo“ procesa koje su pokrenuli ili pokrenuli drugi procesi, pritisnite V.

Pogledajte procese za jednog korisnika

Pritisnite “u” da vidite procese za jednog korisnika. Biće vam zatraženo ime ili UID.

Unesite ime UID-a osobe koju želite da nadgledate. Unesemo „dave” i pritisnemo “Enter”. Sada, jedini procesi u oblasti zadataka pripadaju korisniku dave.

Vidi samo aktivne zadatke

Pritisnite I da vidite samo aktivne zadatke.

Zadaci koji nisu trošili procesor od poslednjeg ažuriranja neće biti prikazani.

Podesite koliko procesa će se prikazati

Pritisnite “n” da ograničite prikaz na određeni broj redova, bez obzira da li su zadaci aktivni. Biće vam zatražen broj procesa za prikaz.

Ukucali smo 10 i pritisnuli Enter, tako da se 10 procesa pojavljuje u oblasti zadataka.

Promenite prioritet procesa

Možete pritisnuti “r” da promenite “nice” vrednost (prioritet) za proces. Biće vam zatražen ID procesa. Samo pritisnite Enter da biste koristili ID procesa zadatka na vrhu prozora procesa. Ukucavamo 7800, što je slučajno ID procesa instance Firefox-a.

Nakon što pritisnete Enter, od vas će biti zatraženo da se nova “nice” vrednost primeni na proces. Ukucamo 15, a zatim pritisnemo Enter.

Nova “nice” vrednost se odmah primenjuje na proces.

Ubijte proces

Pritisnite “k” da ubijete proces. Tada će vam biti zatražen ID procesa koji želite da ubijete. U stvari, možete poslati bilo koji signal procesu. Ubićemo proces 7879, koji je prestao da reaguje.

Biće vam ponuđena prilika da unesete signal koji želite da pošaljete. Možete ga odrediti imenom ili brojem. Ako jednostavno pritisnete Enter, top šalje signal SIGTERM (kill).

Čim pritisnete Enter, signal se šalje procesu.

Prilagođavanje ekrana

Takođe možete prilagoditi boje i kolone koje se prikazuju. Promenićemo boju koja se koristi za upite, a podrazumevana je crvena.

Pritisnite veliko Z da biste otišli na stranicu sa podešavanjima boja. Gornji deo ekrana prikazuje boje koje koriste različiti elementi ekrana. Da biste označili koji element prikaza želite da promenite, pritisnite jedan od sledećih, koji su osetljivi na velika i mala slova:

S: Oblast sažetih podataka.
M: Poruke i upiti.
H: Naslovi kolona.
T: Informacije o zadatku u listi procesa.

Pritisnemo M da promenimo upite.

Da biste izabrali boju, pritisnite jedan od sledećih brojeva:

0: Crno.
1: Crvena.
2: Zelena.
3: Žuta.
4: Plava.
5: Magenta.
6: Cyan.
7: Bela.

Pritisnemo 6 da koristimo cyan.

Pritisnite Enter da sačuvate podešavanja. Pitanja za unos će sada biti u boji koju ste izabrali.

Takođe možemo da promenimo kolone prikazane na ekranu za upravljanje poljima. Pritisnite F da uđete u ekran za upravljanje poljima.

Polja koja su prikazana imaju zvezdicu (*) pored njih i istaknuta su podebljanim slovima. Pritisnite strelice nagore i nadole da biste pomerili istaknuti deo kroz listu polja.

Ako pomerite istaknuti deo sa dna kolone, on će se pojaviti na vrhu sledeće (osim ako niste na dnu poslednje kolone). Ako ga pomerite sa vrha kolone, pojaviće se na dnu prethodne (osim ako niste na vrhu prve kolone).

Pomerili smo isticanje na unos COMMAND, a zatim pritisnuli “d” da uklonimo zvezdicu

. Zatim smo prešli na UID unos i pritisnuli “d” da bismo postavili zvezdicu pored tog unosa. To znači da kolona COMMAND neće biti prikazana, ali kolona UID hoće.

Dok je istaknuto na koloni UID, pritisnemo “s” da sortiramo listu procesa u koloni UID.

Pritisnite Enter da biste sačuvali podešavanja, a zatim pritisnite “x” da biste napustili ekran za upravljanje poljima.

Kolona UID je zamenila kolonu COMMAND i lista procesa je sortirana po njoj.

Alternativni režim prikaza

Ovo najbolje funkcioniše u režimu celog ekrana. Pritisnite A da biste prikazali četiri oblasti na listi procesa, a zatim pritisnite “a” da biste se kretali od oblasti do oblasti.

Svaka oblast ima drugačiju kolekciju kolona, ali svaka je takođe prilagodljiva preko ekrana za upravljanje poljima. Ovo vam daje mogućnost da imate prilagođeni ekran preko celog ekrana koji prikazuje različite informacije u svakoj oblasti i mogućnost sortiranja svake oblasti prema drugoj koloni.

Drugi tasteri

U nastavku su neki drugi tasteri koji bi vam mogli biti korisni u top-u:
W: Sačuvajte svoja podešavanja i prilagođavanja tako da će i dalje biti na snazi kada sledeći put počnete top.
d: Podesite novu brzinu osvežavanja ekrana.

Razmak: Prisilite top da osveži svoj prikaz upravo sada.

Top je kao „banana“ Kao što smo videli, top ima priličan broj mogućnosti. Ostali programi, kao što je htop,

su inspirisani time, ali svaki od njih ima svoje viđenje stvari.

Međutim, top je instaliran svuda. Kada idete u preduzeća da pogledate mreže ili servere, često će vam biti rečeno da se apsolutno ništa ne može promeniti na serverima uživo. Klijent donosi pravila, tako da morate da koristite ono što je već instalirano.

Čak i ako više volite drugi alat za praćenje, trebalo bi da se upoznate sa top-om. Pre ili kasnije, verovatno ćete se naći u situaciji u kojoj ćete imati pristup.