Садржај
Uvod
Svaki računar na svetu ima svog administratora sistema. Po definiciji administrator Linux sistema je osoba koja ima pun pristup, odnosno osoba koja je superkorisnik (root). Između ostalih dužnosti, administrator treba da ima uvid u rad svog sitema. U narednom delu ove teme videćemo nekoliko osnovnih naredbi/alatki (komandi/programa) za nadgledanje i praćenje performansi rada Linux sistema.
Opšte stanje sistema
uptime
Da biste stekli izvestan utisak o opštem stanju performansi sistema možete koristiti komandu
uptime
Primer
bash-4.1$ uptime 10:13:43 up 3:37, 2 users, load average: 0.12, 0.12, 0.14
Komanda uptime će pokazati koliko je korisnika prijavljeno i koliko je prosečno opterećenje sistema tokom poslednjih 1, 5 i 15 minuta. Ipak je ovo jako grub prikaz opterćenosti sistema.
sar
Komanda sar je skraćenica od system activity report (izveštaj o aktivnosti sistema). Za razliku od uptime, komanda sar daje mnogo pouzdanije podatke.
Primer
bash-4.1$ sar -u 5 5 Linux 2.6.37.6-smp (brok) 01/27/2012 _i686_ (2 CPU) 02:54:07 PM CPU %user %nice %system %iowait %steal %idle 02:54:12 PM all 8.81 0.00 1.50 0.50 0.00 89.19 02:54:17 PM all 7.90 0.00 1.20 0.40 0.00 90.50 02:54:22 PM all 7.10 0.00 1.10 0.00 0.00 91.80 02:54:27 PM all 7.82 0.00 1.20 0.50 0.00 90.48 02:54:32 PM all 7.49 0.00 1.10 0.40 0.00 91.02 Average:
Navedena naredba nalaže komandi sar da u intervalima od broja zadatih sekundi (u ovom slučaju pet) uzme odgovarajući broj uzoraka (takođe u ovom slučaju pet uzoraka). Opcijom -u postižemo da komanda sar prikaže iskorišćenje procesora.
%super - označava procenat procesorskog vremena utrošenog na izvršavanje korisničkog koda, uglavnom aplikacije
%nice - je procenat procesorskog vremena utrošenog na izvršavanje korisničkog koda promenjenog prioriteta
%system - označava vreme utrošeno na izvršavanje sistemskog koda (pozivi sistemu)
%idle - pokazuje koliko vremena procesor nije ništa radio
Više informacija možete naći u datoteci/zapisniku /usr/lib/sa/sadc:
vi /usr/lib/sa/sadc
xload
Ako vam je tako lakše opterećenje sistema možete pratiti preko programa xload koji daje informacije u grafičkom obliku.
xload
Nadgledanje aktivnih procesa
Komanda ps je odlično oruđe za nadgledanje aktivnih procesa vašeg sistema. Najkorisnija je u kombinaciji sa -el. Opcija -e izlistava podatke o svakom aktivnom procesu dok opcija -l pravi dugačak linsting sa podacima.
pc -el
Primer
bash-4.1$ ps -el F S UID PID PPID C PRI NI ADDR SZ WCHAN TTY TIME CMD 4 S 0 1 0 0 80 0 - 206 poll_s ? 00:00:00 init 1 S 0 2 0 0 80 0 - 0 kthrea ? 00:00:00 kthreadd 1 S 0 3 2 0 80 0 - 0 run_ks ? 00:00:00 ksoftirqd/0 1 S 0 6 2 0 -40 - - 0 cpu_st ? 00:00:00 migration/0 1 S 0 7 2 0 -40 - - 0 cpu_st ? 00:00:00 migration/1 1 S 0 9 2 0 80 0 - 0 run_ks ? 00:00:00 ksoftirqd/1 1 S 0 11 2 0 60 -20 - 0 rescue ? 00:00:00 cpuset
izlaz je poduži pa je zato skraćen
Objašnjenje
- F - sadrži zbir jedne ili više heksadecimalnih vrednosti koje opisuju aktuelno stanje procesa
- S - prikazuje aktuelno stanje procesa po principu: izvršava se, privremeno zasutavljen itd…)
- UID - prikazuje indentifikator vlasnika procesa
- PID - prikazuje indentifikator procesa
- PPID - prikazuje indentifikator „starijeg“ procesa
- C - prikazuje zauzeće procesora procesom
- PRI - prikazuje prioritet procesa po principu veći broj veći prioritet
- NI - prikazuje izmenu prioriteta procesa pomoću komande nice po principu veći broj označava niži prioritet
- SZ - prikazuje količinu virtuelne memorije potrebne za izvršavanje procesa
- TTY - označava terminal sa kojeg je proces pokrenut
- TIME - prikazuje ukupno procesorsko vremeu satima i minutama utrošeno na izvršavanje procesa
- CMD - prikazuje komandu koja je pokrenula proces
Zuzeće meorije
Pomoću komande vmstat možemo ispitati podsistem virtuelne memorije i pronaći eventualni problem. Komanda vmstat prikazuje statistiku korišćenja podsistema virtuelne memorije, opterćenje procesora i podatke o aktivnosti diska i procesora. Opšti oblik te naredbe je:
vmstat [interval] [broj]
Komanda vmstat u intervalima (zadatim u sekundama) uzima odgovarajući broj uzoraka i rezultate prikazuje u standardnom izlaznom toku
bash-4.1$ vmstat 5 5 procs -----------memory---------- ---swap-- -----io---- -system-- ----cpu---- r b swpd free buff cache si so bi bo in cs us sy id wa 1 0 0 1280040 376128 1178352 0 0 52 76 558 1823 17 2 79 1 0 0 0 1279552 376128 1178352 0 0 0 0 1065 3148 11 2 88 0 0 0 0 1279800 376128 1178352 0 0 0 0 1047 2970 11 2 88 0 0 0 0 1279676 376136 1178352 0 0 0 13 1022 2638 10 1 88 0 0 0 0 1279924 376144 1178352 0 0 0 22 1007 2421 10 2 88 0
Dobijeni rezultati su naizgled teško čitljivi. Prvi red svakog izveštaja komande vmstat prikazuje samo zbirne informacije. Sledeći redovi prikazuju informacije koje možemo da iskoristimo za otkrivanje eventualnog problema sa memorijom.
polje procs
- r - broj procesa spermnih za izvršavanje
- b - broj zaustavljenih procesa
polje memory
- swpd - veličina korišćene virtuelne memorija u kilobajtima
- free - veličina nedodeljene memorije u kilobajtima
- buff - veličina međumemorije (befera) u kilobajtima
- cache - veličina memorijske ostave (keš) u kilobajtima
polje swap
- si - brzina prenosa podataka iz virtuelne memorije u radnu memoriju u KB/s
- so - brzina prenosa podataka iz radne u virtualnu memoriju u KB/s
polje io
- bi - broj blokova podataka zapisanih u sekundi na ulazno-izlazni uređaj
- bo - broj blokova učitan u sekundi sa ulazno-izlaznog uređaja
polje system
- in - broj prekida u sekundi izazvanih uređajima
- cs - broj promena konteksta procesa u sekundi
polje cpu
- us - procenat procesorskog vremena utrošenog na izvršavanje korisničkog koda
- sy - procenat procesorskog vremena utrošenog na izvršavanje sistemskog koda
* id - procenat neutrošenog procesorskog vremena
U ovim poljima treba obratiti pažnju na korišćenje ukupne i virtuelne memorije. Kada je raspoloživa virtuelna memorija (prikazana u kilobajtima u polju swap) mala, sistem sa njom intezivno razmenjuje podatke pa performanse su verovatno zbog toga slabe. Tada treba potrebiti komandu pd da bi se otkrio proces ili procese koji intezivno koriste virtuelnu memoriju. Uglavnom trajno rešenje je u dodavanju još RAM-a.
Ako je u koloni wa vrednost različita od nule, a vrednosti u kolonama so i si ukazuju na neprestanu razmenu sa virtuelnom memorijom, potražite proces koji opsežno zauzima memoriju, naručito virtuelnu. Ako duže posmatrate kolone r i b steći ćete utisak o brzini prolaska procesa kroz red čekanja na izvršavanje, Vrednost u koloni r i b treba stalno da budu niske, osim kod dugotrajnih procesa koje takođe lako možete da otkrijete sa komandom ps.
Komanda free prikazuje korišćenje meorije, uključujući virtuelnu memoriju i kapacitet. Za jedno umereno opterećenje sistem dobićete otprilike sledeće rezultate
bash-4.1$ free
total used free shared buffers cached
Mem: 3607112 1471564 2135548 0 282812 877548
-/+ buffers/cache: 311204 3295908
Swap: 1572860 0 1572860
Nasuprot gornjem prikazu evo primera gde je meorija prilično opterćena
sysadmin@server ~ # free
total used free shared buffers cached
Mem: 8190820 7532908 657912 0 273732 6048780
-/+ buffers/cache: 1210396 6980424
Swap: 2102456 0 2102456
Komanda free prikazuje snimak korišćenja memorije koji možete da obuhvatite jednim pogledom. Prvi red ispod zaglavlja pokazuje podatke o fizičkoj (radnoj) memoriji u kilobajtima, uključujući ukupnu veličinu RAM-a, njegov ne uvek i iskorišćen deo koji zauzima jezgro operativnog sistema, veličinu slobodnog RAM-a i delove RAM-a namenjenog deljenju, međumemoriji i ostavi.
Drugi red se odnosi na korišćenje međumemorije. Drugim rečima, komanda free oduzima predviđenu međumemoriju i ostavu od kolone used i rezultat smešta u kolonu free tako da dobijamo tačniju sliku korišćenja memorije u odnosu na zauzeće u jezgru operativnog sistema, ona se menja u zavisnosti od iskorišćenja sistema i prosečnog korišćenja memorije. Ako u prvom redu vrednost buffers i cached oduzmete od vrednosti korišćene memorije dobićete vrednost (za prvi prikaz) 311204 (1471564−282812−877548=311204), dok dodavanjem vrednosti buffers i cached na vrednost free dobijamo 3890644 (2135548+877548+877548=3890644) što je oko 12.5 puta više.
Treći red prikazuje veličinu raspoložive, korišćene i slobodne virtuelne memorije koja je u vreme snimanja sistema bila nekorišćena u oba snimka.
Ovi podaci se mogu videti i u grafičkom prikazu, sve u zavisnosti koje grafičko okruženje koristite. Recimo System Monitor u GNOME grafičkom okruženju
Zauzeće diska i njegove performanse
Zauzeće diska se lako može partiti komandom df i du. Komanda df prikazuje stanje raspoloživog prostora na diskum dok komanda du prikazuje koliko je prostora zauzeto na disku.
bash-4.1$ df Filesystem 1K-blocks Used Available Use% Mounted on /dev/root 20641788 12602500 6990696 65% / /dev/sda8 15481840 4701848 9993560 32% /media/root_ubuntu /dev/sda9 42924248 28350532 12393264 70% /media/home_ubuntu /dev/sda1 102396 46764 55632 46% /media/rsv /dev/sda2 83779580 73083256 10696324 88% /media/windows /dev/sda5 62918540 51342056 11576484 82% /media/hard1 tmpfs 1803556 116 1803440 1% /dev/shm /dev/sda6 83884700 58033040 25851660 70% /media/hard2
Upotrebom opcije -k komande df može se videti zauzeće diska u kilobajtima
bash-4.1$ df -k Filesystem 1K-blocks Used Available Use% Mounted on /dev/root 20641788 12602500 6990696 65% / /dev/sda8 15481840 4701848 9993560 32% /media/root_ubuntu /dev/sda9 42924248 28350532 12393264 70% /media/home_ubuntu /dev/sda1 102396 46764 55632 46% /media/rsv /dev/sda2 83779580 73083256 10696324 88% /media/windows /dev/sda5 62918540 51342056 11576484 82% /media/hard1 tmpfs 1803556 116 1803440 1% /dev/shm /dev/sda6 83884700 58033040 25851660 70% /media/hard2
U današnjim prilikama izveštaj će biti najčitljiviji upotrebom opcije -h
bash-4.1$ df -h Filesystem Size Used Avail Use% Mounted on /dev/root 20G 13G 6.7G 65% / /dev/sda8 15G 4.5G 9.6G 32% /media/root_ubuntu /dev/sda9 41G 28G 12G 70% /media/home_ubuntu /dev/sda1 100M 46M 55M 46% /media/rsv /dev/sda2 80G 70G 11G 88% /media/windows /dev/sda5 61G 49G 12G 82% /media/hard1 tmpfs 1.8G 116K 1.8G 1% /dev/shm /dev/sda6 80G 56G 25G 70% /media/hard2
Opcija -h potpuno razjašnjava koliko imamo raspoloživog prostora u svakom sistemu datoteke.
Ako bi upotrebimo opciju -l dobićemo samo podatke o prostoru na disku koji se fizički nalazi na sistemu ali ne i za povezane mrežne sistemske datoteke niti za diskove kojima pristupamo daljinski.
Kada želimo da utvrdimo koliki deo prostora na disku se koristi, upotrebićemo komandu du. Njena osnovna sintaksa je
du [opcija] datoteka
sysadmin@server ~/backup # du -h 7.7G .
sysadmin@server ~/backup # du -k 8015940 .
sysadmin@server ~/backup # du -m 7829 .
sysadmin@server ~/backup # du -s 8015940 .
-h - prikazuje izveštaj u jedinicama koje su najčitljiviji korisniku
-k -prikazuje rezultate u kilobajtima
-m -prikazuje rezultate u megamajtima
-s -prikazuje samo zbirne vrednosti
Ulazno-izlazne operacije sa diskom obično su usko grlo sistema. Operativna memorija i procesor rade više hiljada puta brže od najbržeg diska. Srećom, jezgro operativnog sistema i savremeni čvrsti diskovi koriste softversku i hardversku memorijsku ostavu, međumemoriju za predhodno učitavanje i odloženo zapisavinje na hard disk da bi prikrili i smajnili pomenutu razliku u brzini rada. Ipak, kao administrator sistema i dalje bi trebali znati da utvrdite probleme i izborite se sa njima kada se pojave na ulazno-izlaznim operacijama sa diskom. Korisno je da se upoznate sa sledećim frazama koje se često koriste za opisivanje performansi sistema:
- Srednje vreme pristupanja (Average seek time) - procena prosečnog trajanja operacije pristupanja
- Maksimalno vreme pristupanja (Maximum seek time) - trajanje kretanja glave diska između dve staze na disku koje su međusobno najviše udaljene
- Minimalno vreme pristupanja (Minimum seek time) - trajanje kretanja glave diska izmeu dve susedne staze
- Kašnjenje lociranja (Queuing delay) - vreme potrebno kontroleru diska da utvrdi gde na disku treba da pročita/upiše podatke
- Rotaciono kašnjenje (Rotational latency) - vreme potrebno da se pravo mesto na disku dovede ispod glave za čitanje/upisivanje, izraženo brojem obrta u minutu (RPM)
- Kašnjenje pristupanja (Seek latency) - vreme potrebno glavi za čitanje/upisivanje da se pozicianira na određeni cilindar diska
- Vreme pristupanja (Seek time) - Vreme potrebno glavi za čitanje/upisivanje da pređe sa jedne staze diska na drugu
Za utvrđivanje problema sa performansama ulazno-izlaznih operacija najčešće se koristi komanda iostat. Slično komandi vmstat, i komanda iostat se najjednostavnije zadaje na sledeći način
iostat [interval] [broj]
Interval definiše broj sekundi između dva uzastopna izveštaja, a broj predstavlja ukupan broj izveštaja.
bash-4.1$ iostat 5 5
Linux 2.6.37.6-smp (brok) 03/01/2012 _i686_ (2 CPU)
avg-cpu: %user %nice %system %iowait %steal %idle
12.06 0.00 1.80 1.30 0.00 84.84
Device: tps Blk_read/s Blk_wrtn/s Blk_read Blk_wrtn
sda 5.70 228.42 173.17 1433701 1086952
avg-cpu: %user %nice %system %iowait %steal %idle
3.10 0.00 0.70 0.30 0.00 95.90
Device: tps Blk_read/s Blk_wrtn/s Blk_read Blk_wrtn
sda 0.80 0.00 16.00 0 80
avg-cpu: %user %nice %system %iowait %steal %idle
3.20 0.00 1.10 0.00 0.00 95.70
Device: tps Blk_read/s Blk_wrtn/s Blk_read Blk_wrtn
sda 0.00 0.00 0.00 0 0
avg-cpu: %user %nice %system %iowait %steal %idle
3.30 0.00 1.00 0.00 0.00 95.70
Device: tps Blk_read/s Blk_wrtn/s Blk_read Blk_wrtn
sda 0.00 0.00 0.00 0 0
avg-cpu: %user %nice %system %iowait %steal %idle
5.00 0.00 1.70 0.00 0.00 93.31
Device: tps Blk_read/s Blk_wrtn/s Blk_read Blk_wrtn
sda 6.00 0.00 51.20 0 256
tps - broj operacija prenosa podataka (ili ulazno-izlaznih zahteva za prekid) u sekundi poslatih disku
Blk_read/s - broj blokova podataka učitanih sa uređaja u sekundi
Blk_wrtn/s - broj blokova podataka učitanih na uređaja u sekundi
Blk_read - ukupan broj učitanih podataka
Blk_wrtn - ukupan broj upisanih podataka
Ako detaljnije želimo da ispitamo ulazno-izlazne performanse diska, upotrebićemo opciju -x, zadajući i disk odnosno particiju koja nas zanima. Opcija -x omogućava detaljniju statistiku ulazno-izlaznih operacija zadatih diskova ili pak svih diskova ako ne zadamo disk.
Naredna komanda prikazuje snimak aktivnosti diska /dev/sda tokom prevođenja jezgra operativnog sistema (takođe [interval=5] [broj=5]). Zbog opcije -d komanda iostat ne prikazuje zbirni izveštaj o korišćenu procesora
bash-4.1$ iostat -d -x /dev/sda 5 5
Linux 2.6.37.6-smp (brok) 03/01/2012 _i686_ (2 CPU)
Device: rrqm/s wrqm/s r/s w/s rsec/s wsec/s avgrq-sz avgqu-sz await svctm %util
sda 6.38 19.47 3.88 1.64 218.99 168.80 70.30 0.15 27.52 4.10 2.26
Device: rrqm/s wrqm/s r/s w/s rsec/s wsec/s avgrq-sz avgqu-sz await svctm %util
sda 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
Device: rrqm/s wrqm/s r/s w/s rsec/s wsec/s avgrq-sz avgqu-sz await svctm %util
sda 0.00 0.40 0.00 0.80 0.00 9.60 12.00 0.01 8.50 8.50 0.68
Device: rrqm/s wrqm/s r/s w/s rsec/s wsec/s avgrq-sz avgqu-sz await svctm %util
sda 0.00 0.40 0.00 0.80 0.00 9.60 12.00 0.01 10.25 10.25 0.82
Device: rrqm/s wrqm/s r/s w/s rsec/s wsec/s avgrq-sz avgqu-sz await svctm %util
sda 0.00 0.80 0.00 2.40 0.00 25.60 10.67 0.01 3.58 3.42 0.82
* **rrqm/s** - broj spojenih zahteva za čitanje podataka u sekundi
- wrqm/s - broj spojenih zahteva za upisivanje podataka u sekundi
- r/s - broj zahteva za čitanje podataka u sekundi
- w/s - broj zahteva za upisivanje podataka u sekundi
- rsec/s - broj učitanih sektora u sekundi
- wsec/s - broj upisanih sektora u sekundi
- avgrq-sz - prosečna veličina zahteva u sektorima
- avgqu-sz - prosečna dužina reda za čekanje zahteva
- await - prosečno vreme čekanja ulazno-izlazne operacije na izvršenje izraženo u milisekundama
- svctm - prosečno vreme izvršavanja ulazno-izlazne operacije izraženo u milisekundama
- %util - procenat zauzeća procesora zahtevima za ulazno-izlazne operacije
Korišćenje procesora
Najpoznatiji uslužni program za praćenje korišćenja procesora jeste top, koji prikazuje najzahtevnije procese. Program top prati rad procesora u realnom vremenu, što znači da prikazuje listu aktivnih procesa koji ga najviše koriste. Prikaz se podrazumevano ažurira na svake tri sekunde, mada je interval ažuriranja promenljiv u toku izvršavanja komande top, sa d ili s i zadatom vrednošću.
Primer zamene intervala ažuriranja na 6 sekunde
top - 11:21:23 up 41 days, 21:09, 1 user, load average: 0.25, 0.18, 0.11
Tasks: 192 total, 2 running, 190 sleeping, 0 stopped, 0 zombie
Cpu(s): 2.1%us, 0.2%sy, 0.0%ni, 97.3%id, 0.2%wa, 0.0%hi, 0.1%si, 0.0%st
Mem: 8190820k total, 7867744k used, 323076k free, 269440k buffers
Swap: 2102456k total, 0k used, 2102456k free, 6435568k cached
Change delay from 3.0 to: 6
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
1488 mysql 20 0 455m 76m 4328 S 2 1.0 1032:25 mysqld
3487 root 20 0 19060 1320 916 R 2 0.0 0:00.01 top
1 root 20 0 8352 748 616 S 0 0.0 0:20.15 init
2 root 20 0 0 0 0 S 0 0.0 0:00.00 kthreadd
3 root RT 0 0 0 0 S 0 0.0 0:03.14 migration/0
4 root 20 0 0 0 0 S 0 0.0 0:03.61 ksoftirqd/0
5 root RT 0 0 0 0 S 0 0.0 0:00.00 watchdog/0
6 root RT 0 0 0 0 S 0 0.0 0:00.02 migration/1
7 root 20 0 0 0 0 S 0 0.0 0:04.69 ksoftirqd/1
8 root RT 0 0 0 0 S 0 0.0 0:00.00 watchdog/1
9 root RT 0 0 0 0 S 0 0.0 0:00.01 migration/2
10 root 20 0 0 0 0 S 0 0.0 0:01.97 ksoftirqd/2
11 root RT 0 0 0 0 S 0 0.0 0:00.00 watchdog/2
12 root RT 0 0 0 0 S 0 0.0 0:00.00 migration/3
13 root 20 0 0 0 0 S 0 0.0 0:01.10 ksoftirqd/3
14 root RT 0 0 0 0 S 0 0.0 0:00.00 watchdog/3
15 root RT 0 0 0 0 S 0 0.0 0:00.26 migration/4
Prikaz komande top
sysadmin@server ~ # top - 11:47:56 up 40 days, 21:36, 2 users, load average: 0.05, 0.08, 0.08 Tasks: 179 total, 1 running, 178 sleeping, 0 stopped, 0 zombie Cpu(s): 0.8%us, 0.1%sy, 0.0%ni, 99.1%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st Mem: 8190820k total, 7840068k used, 350752k free, 275276k buffers Swap: 2102456k total, 0k used, 2102456k free, 6533588k cached PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 3371 www-data 20 0 216m 15m 3788 S 3 0.2 0:00.08 apache2 3370 www-data 20 0 217m 17m 3784 S 2 0.2 0:00.24 apache2 3374 www-data 20 0 211m 11m 3308 S 1 0.1 0:00.03 apache2 1488 mysql 20 0 455m 76m 4316 S 1 1.0 1011:09 mysqld 514 root 20 0 0 0 0 S 0 0.0 3:57.64 kjournald
izlaz je poduži pa je zato skraćen
Prvi red prikazuje ukupno vreme rada sistema, slično rezultatu komande uptime. Sledeća dva reda rezultata komande top sumiraju korišćenje procesora (u apsolutnim brojevima, odnosno uprocentima) prikazujući aktivne procese, procese koji su privremeno zaustavljeni, zombije i trajno zaustavljene procese.
Zombi (zombie) je proces koji se završio pre nego što je njegov roditeljski proces uspeo da to sazna. Oni se zovu zombi-procesi jer su „mrtvi“ i ne zauzimaju resurse (osim odrednice u tabeli procesa jezgra operativnog sistema), ali se ipak pojavljuju pri izlistavanju procesa.
U četvrtom i petom redu rezultata sumirano je aktueIno korišćenje memorije, na način kao što to prikazuje komanda free. Šesti red je u stvari zaglavlje za preostale podatke - procese koji najviše opterećuju procesor, podrazumevano prikazane po opadajućem redosledu prema zauzeću procesora.
- PID - identifikator procesa
- USER - ime korisnika koji je pokrenuo proces
- PRI - prioritet izvršavanja procesa
- NI - izmena prioriteta procesa (nice)
- SIZE - veličina memorije potrebna za izvršavanje procesa
- RSS - veličina fizičke memorije koju proces zauzima
- SHARE ili SHR - veličina deljene memorije koju proces koristi
- STAT ili S - aktuelno stanje procesa
- %CPU - procenat ukupnog procesorskog vremena koji otpada na proces
- %MEM - procenat ukupne fizičke memorije koju koristi proces
- TIME - ukupno potrošeno vreme procesora na izvršenje procesa
- COMMAND - komanda kojom je proces pokrenut, prikazana u zagradama ako je proces odložen u virtuelnu memoriju
Željeni proces možemo „ubiti“ u samom prikazu komande top, sa tipkom k ili K upisujući PID (identifikator procesa).
top - 12:22:32 up 41 days, 22:11, 1 user, load average: 0.38, 0.18, 0.11 Tasks: 197 total, 1 running, 195 sleeping, 0 stopped, 1 zombie Cpu(s): 1.9%us, 0.2%sy, 0.0%ni, 97.6%id, 0.3%wa, 0.0%hi, 0.1%si, 0.0%st Mem: 8190820k total, 7552332k used, 638488k free, 272644k buffers Swap: 2102456k total, 0k used, 2102456k free, 6105384k cached PID to kill: PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 7773 www-data 20 0 218m 19m 4336 S 8 0.2 0:00.48 apache2 1488 mysql 20 0 455m 76m 4328 S 2 1.0 1033:17 mysqld 7839 www-data 20 0 211m 12m 3828 S 2 0.2 0:00.06 apache2 7610 www-data 20 0 218m 19m 4328 S 1 0.2 0:00.58 apache2 7658 www-data 20 0 226m 20m 5192 S 1 0.3 0:00.22 apache2
Stanje procesa može da bude D (privremeno zaustavljen na određeno vreme), R (izvršava se), S (privremeno zaustavljen), T (zaustavljen ili praćen) ili Z (zombi). Ako se iza oznake stanja procesa nalazi znak <, proces ima negativnu izmenu prioriteta, a ako je znak N, njegova izmena prioriteta je pozitivna. Ukoliko tu stoji znak W, proces je odložen u virtuelnu memoriju. Inače, redosled prikazanih procesa možemo da promenimo tako što ćemo komandi top naložiti da osim zauzeća procesora uzme u obzir i neki drugi kriterijum. Dok program top radi pritisnite taster o ili O, a zatim taster u prikazu liste ispod da bi prikaz bio uređen po željenom kriterijumu.
- a ili A - redosled pokretanja
- m ili M - zauzeće fizičke memorije
- n ili N - brojčana vrednost identifikatora
- p ili P - zauzeće procesora
- t ili T - utrošeno procesorsko vreme
Od konzolnih programa za nadgledanje performansi sistema sličan programu top je htop.
Nadgledanje rada u mreži
Uska grla na mreži doživljavamo svakodnevno. Sama priroda mreže otežava otklanjanje problema sa performansama jer grešku ili zastoj može štošta da prouzrokuje . Krivci mogu da budu sve od mrežne kartice, preko razvodnih kablova, mosta, skretnica sve do mrežniih prolaza ili zaštitne barijere.
Uglavnom, kada postoji problem s performansama na TCP/IP Ethernetu to svi mi osećamo, neko lakše neko teže. Ethernet tu ne pravi razliku recimo ako je mreža zagušena već tu svi podjednako trpimo. Što se tiče administratora, oni zagušenje mreže osećaju baš na sopstvenoj koži kroz brojne zahteve korisnika da se problem odmah otkloni.
Kod ovakvih problema na prvom mestu treba proveriti saobraćaj sirovih paketa pomoću komande netstat i njene opcije -i, koje prikazuju TCP/IP saobraćaj na svim aktivnim mrežnim interfejsima.
<code>sysadmin@server ~ # netstat -i Kernel Interface table Iface MTU Met RX-OK RX-ERR RX-DRP RX-OVR TX-OK TX-ERR TX-DRP TX-OVR Flg eth0 1500 0 626925421 0 0 0 1056722848 0 0 0 BMRU lo 16436 0 12469047 0 0 0 12469047 0 0 0 LRU </code>
* Iface - ime mrežnog interfejsa * MTU - maksimalna jedinica prenosa (veličina paketa) interfejsa * RX-OK - broj dolaznih (primljenih) paketa od trenutka pokretanja interfejsa * RX-ERR - broj grešaka kod dolaznih paketa * RX-DRP - broj odbačenih dolaznih paketa * RX-OVR - broj dolaznih paketa koji su prepunili ulazni bafer * TX-OK - broj odlaznih (poslatih) paketa od trenutka pokretanja interfejsa * TX-ERR - broj grešaka kod odlaznih paketa od poslednjeg pokretanja interfejsa * TX-DRP - broj odbačenih odlaznih paketa * TX-OVR - broj odlaznih paketa koji su prepunili izlazni bafer
Slikovni prikaz komande netstat -i, radi lakšeg uvida:
U izveštaju iz gore navedenog primera, na preko 620 miliona dolaznih paketa i preko jedne milijarde odlaznih paketa predstavlja odličan rezultat.
Kada se poveća broj grešaka pri slanju paketa, to znači da u sistemu postoji neki problem. Sa druge strane, greške kod dolaznih paketa retko ukazuju na problem u vašem sistemu već je problem „tamo negde“ na drugom mestu.
Da biste stekli bolju predstavu o zagušenju mreže, upotrebite komandu netstat bez opcija kao u narednom primeru:
bash-4.1$ netstat Active Internet connections (w/o servers) Proto Recv-Q Send-Q Local Address Foreign Address State tcp 0 0 192.168.0.100:46719 static.204.106.4.4:http TIME_WAIT tcp 196 0 192.168.0.100:56761 192.168.0.1:netbios-ssn ESTABLISHED tcp 196 0 localhost:33750 localhost:netbios-ssn ESTABLISHED tcp 0 0 192.168.0.100:48171 fa-in-f17.1e100.n:https ESTABLISHED tcp 196 0 localhost:33747 localhost:netbios-ssn ESTABLISHED tcp 0 0 192.168.0.100:56271 95.180.93.153:39290 ESTABLISHED tcp 0 0 192.168.0.100:52553 fa-in-f101.1e100.:https TIME_WAIT tcp 0 0 192.168.0.100:48177 fa-in-f17.1e100.n:https ESTABLISHED tcp 196 0 localhost:33745 localhost:netbios-ssn ESTABLISHED tcp 0 0 192.168.0.100:52610 sync01.phx.servic:https ESTABLISHED tcp 0 0 192.168.0.100:46917 static.204.106.4.46:ssh ESTABLISHED tcp 0 0 localhost:netbios-ssn localhost:33750 ESTABLISHED tcp 0 0 localhost:netbios-ssn localhost:33747 ESTABLISHED tcp 0 0 localhost:netbios-ssn localhost:33745 ESTABLISHED tcp 0 0 ::ffff:192.:netbios-ssn ::ffff:192.168.0.:56761 ESTABLISHED Active UNIX domain sockets (w/o servers) Proto RefCnt Flags Type State I-Node Path unix 13 [ ] DGRAM 4652 /dev/log unix 2 [ ] DGRAM 3704 @/org/kernel/udev/udevd unix 2 [ ] DGRAM 5727 @/org/freedesktop/hal/udev_event unix 3 [ ] STREAM CONNECTED 183148 @/tmp/dbus-aVfx2uQe69 unix 3 [ ] STREAM CONNECTED 183713 unix 3 [ ] STREAM CONNECTED 179317 unix 3 [ ] STREAM CONNECTED 179316 unix 3 [ ] STREAM CONNECTED 179315 /tmp/orbit-brok-a8e8c8d8/linc-45f1-0-681dc5142df8 unix 3 [ ] STREAM CONNECTED 179314 unix 3 [ ] STREAM CONNECTED 179312 /tmp/orbit-brok-a8e8c8d8/linc-8d9-0-2c5a29a8c4379
izlaz je poduži pa je zato skraćen
Prikazan je samo deo veoma dugačkog izveštaja. Komanda netstat upotrebljena bez opcija prikazuje sve aktivne veze sa Internetom uspostavljene preko TCP, UDP i Unix priključaka. Možete da upotrebite opcije -t i -u da biste uklonili Unix priključke (netstat -t -u). Unix priključci služe samo za lokalni mrežni saobraćaj, ali ne i za povezivanje umreženih računara. U izveštaju treba da tražite vrednosti različite od nule u koloni Send-Q. Ako više priključaka ima takve vrednosti, pa one još i rastu, mreža je zagušena. Da biste proverili da li vrednosti u koloni Send-Q rastu, zadajte i opciju -e da bi se prikaz stalno ažurirao.
Da biste proverili vezu s računarima u mreži, upotrebite komandu ping. Prvo pokušajte da se povežete s lokalnim računarom navodeći ime povratne petlje (ping localhost), a zatim navodeći IP adresu petlje (ping 127.0.0.1). Zatim proverite povezivanje s lokalnim računarom, navodeći njegovo stvarno ime i IP adresu na mreži. Ako se komanda ping uspešno završi, mreža radi na lokalnom sistemu. Sa druge strane ako se računar odazove na IP adresu ali ne i na ime, proverite odgovarajuću odrednicu u datoteci /etc/hosts. Posle toga, pokušajte da pozovete drugi sistem na mreži, opet služeći se njegovim imenom i IP adresom. U opštem slučaju ako se udaljen računar odazove kada ga pozovete služeći se IP adresom, ali ne i kada ga pozovete po imenu, problem je u serveru imena. U takvom slučaju proverite da li je server imena naznačen u datoteci /ete/resolv.conf. Na kraju, pokušajte da pozovete sistem na drugoj mreži (služeći se imenom i IP adresom). Uspešno povezivanje sa sistemima koji nisu na lokalnoj mreži znači da barem možete da izađete na Internet. Ako neki udaljeni sistem nije dostupan, možda u tom trenutku nije ni uključen. Ako ne možete da se povežete sa udaljenim sistemima, proverite da li dobro rade server imena i mrežni prolaz, kao i to da li je interfejs na mreži koji želite da dosegnete uopšte aktivan. Slično tome komanda netstat -nr proverava tabele putanja i ističe nevažeće ili netačne odrednice DNS servera.




