Dobrodošli na wiki srpske Slackware zajednice. Za izmenu sadržaja je neophodno registrovati nalog. Pre uređivanja ili dodavanja sadržaja poigrajte se sa wiki sintaksom u igralištu.

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 izme￰u 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.


QR Code
QR Code saveti:pracenje_performansi_sistema (generated for current page)