Fujitsu-Siemens
 
M A G A Z I N
 
IT SAVETNIK 
  Srđan Katić

ANALIZIRANJE I OPTIMIZACIJA SERVERSKIH OKRUŽENJA

Analiziranje i optimizacija su ključni momenat u iskorištenju informatičkog sistema. Ako želimo da izvučemo maksimum iz opreme i softvera onda moramo imati predstavu o tome kakvo je naše iskorištenje i na koji način u takvom okruženju možemo da primenimo ono što imamo. Znači, pravilna raspodela resursa, prilagođena konfiguracija i nadgledanje produkcije. Ovim koracima dobijamo uštedu novčanih sredstava, optimalan rad sistema i kvalitetan i neposredan uvid u njegovu funkcionalnost. Da bi smo znali kako da raspodelimo resurse i prilagodimo konfiguraciju potrebno je da izvršimo analizu sistema i definišemo kakvo nam je okruženje potrebno. Na primer, aplikativno okruženje zahteva totalno drugačiji pristup od okruženja gde je klasični transfer podataka primaran. Stoga ćemo na primeru serverskog računara pokušati da to pojasnimo. Pre toga ćemo definisati ključne momente u analizi i optimizaciji.
Da bi smo znali kakav nam je sistem potreban pre svega je potrebno da znamo šta od njega očekujemo. Ovaj proces se naziva "karakterizacija radnog opterećenja" i predstavlja pokušaj definisanja resursa koje jedan server mora da ponudi kao i realne vrednosti za svaku stavku u listi istih. Da bi smo dobili tu listu moramo da definišemo "jedinicu radnog opterećenja". Primer jedinice radnog opterećenja je broj upisa u sekundi na hard disk servera. Međutim ako nemamo nameru da radimo kompletnu karakterizaciju, koja inače može da potraje i nekoliko stotina radnih sati, potrebno je da odredimo šta je za naš slučaj prioritetno. Ako optimizujemo aplikacioni server logično je da ćemo dati prednost karakterizaciji opterećenja memorije na serveru. Ako se radi o file serveru onda nam je prioritet broj upisa na disk u jedinici vremena. Ako se pak radi o domen kontroleru prvo ćemo pokušati da definišemo koju količinu korisnika može server da podrži u domenu a da pritom ne dođe do pada performansi, kao što je vreme potrebno da se korisnik uloguje. U jednostavnijim sistemima često može "odokativno" da se odredi da li sistem ispunjava očekivanja ali u kompleksnim sistemima, kao što je storage area network, proceduralni pristup je neophodan.


USKA GRLA ( BOTTLENECKS )


Tokom procesa karakterizacije ključni momenat čini otkrivanje uskih grla. Uska grla su zapravo delovi informatičkog sistema koji ne mogu da ispune iščekivanja i direktno utiču na rad ostalih podsistema. Na primer, ako hub ne može da prosledi potrebnu količinu podataka u jedinici vremena onda zaključujemo da je on usko grlo. U tom slučaju, ne vredi nam ni najbrži hard disk i mrežni adapter na računaru koji prima podatke jer sam hub ne može da prosledi količinu podataka koju taj računar može realno da primi u jedinici vremena. Stoga su uska grla ozbiljan problem jer degradiraju performanse celog informatičkog sistema. Četiri podsistema koja su najčešći izvor uskih grla na serverima su memorija, procesor, disk podsistem i mrežni podsistem. Njih možemo nadgledati Microsoft alatom pod imenom Performance.



USKA GRLA RADNE MEMORIJE


Memorija se deli na onu koja može da se straniči i onu koja to ne može, tačnije na paged i non-paged memoriju. Paged memorija je virtuelna memorija koja je zapravo deo prostora na hard disku i koja služi da simulira prisustvo dodatne RAM memorije. Ova memorija se u Windows-u nalazi u fajlu pod imenom pagefile.sys. Non-paged RAM je deo fizičke memorije koja skladišti podatke koji ne mogu da se smeste u virtuelni RAM kao što su npr. neki sistemski procesi.
Tehnologija virtuelne memorije zapravo kombinuje RAM, hard disk i fajl sistem keš. Windows zapravo upisuje podatke koji bi trebalo da se nalaze u radnoj memoriji na hard disk a u trenutku kada ih aplikacija zatraži bivaju kopirani u RAM. Međutim, kada sistem ima malo radne memorije ovaj proces prebacivanja postaje prečest pa dolazi do degradacije performansi.Najbolji indikator nedostatka memorije je Hard Page Faults event. Hard Page Faults zapravo predstavlja momenat kada aplikacija ne može da nađe informaciju u radnoj memoriji i mora da je potražuje sa diska. Konstantna vrednost od preko 5 u sekundi ukazuje na usko grlo memorije i ukazuje nam da je memorija skoro skroz popunjena.
1. Pages/sec-predstavlja broj potraženih jedinica radne memorije (stranica) koje nisu bile prisutne u RAM-u kada ih je aplikacija potraživala nego su morale da budu upisane u RAM sa hard diska ili iz RAM-a na hard disk kako bi se oslobodila memorija za neki prioritetniji upis u RAM. Konstantna vrednost od preko 5 u sekundi ukazuje na usko grlo memorije.
2. Available bytes-Ukazuje na količinu radne memorije koja je dostupna. Trebalo bi uzeti u obzir da prilikom nadgledanja memorije proces koji je nadgleda troši dodatnu memoriju. Ako je ova vrednost konstantno ispod 4 mb onda to znači da je server na samoj ivici operativnosti. U praksi, ova vrednost bi trebalo da u vrhuncu rada bude minimum 15 mb.
3. Committed bytes-Ukazuje na količinu podataka iz virtualne memorije koji su upisani u RAM ili u pagefile. Ako je ova vrednost veća od količine RAM-a onda je memorija usko grlo.
4. Pool Nonpaged bytes-Ova vrednost ukazuje na non-paged deo RAM-a. Ako je ova vrednost u porastu bez odgovarajućeg porasta aktivnosti onda je došlo do "curenja" memorije. Curenje se dešava kada određen proces guta sve više memorijskih resursa jer je npr. proces upao u zatvorenu petlju i konstantno potražuje RAM da bi uskladištio neke podatke.


USKA GRLA PROCESORA


Skoro sve što se dešava na računaru koristi procesor na neki način. Česti uzroci uskog grla na polju procesorske snage su upravljački programi, aplikacije i prečesti zahtevi za procsorskim vremenom ili takozvani interrupt requests. Nadgledanje sledećih vrednosti je ključno:
1. % Processor time-Vreme procesorskog vremena koje se troši. Vrednost od preko 75 ukazuje na usko grlo.
2. % Privileged Time- Vreme koje procesor provede služeći operativni sistem.
3. % User Time- Vreme koje procesor provede služeći korisničke servise i zahteve.

4. Interrupts/sec- Količina zahteva za procesorskim vremenom u sekundi. Granična vrednost zavisi od arhitekture i snage procesora. Na primer, Pentium I pravilno operiše sa manje od 3500 zahteva u sekundi.
5. System: Processor Queue Length- Određuje količinu zahteva koje procesor drži u svom redu za čekanje (queue). Vrednost od preko dva ukazuje na zakrčenost procesora.
6. Server Work Queues: Queue Length- Količina zahteva u queue za određeni procesor. Vrednost preko dva ukazuje na usko grlo.
Postoji nekoliko načina da se reši problem procesorskog uskog grla: dodatni procesor,raspodela procesa među procesorima, setovanje fiksnog (hard) i promenljivog (soft) afiniteta (prim. prev.), prebacivanje procesa na druge računare.


USKA GRLA "TVRDIH DISKOVA"


Brojači koji nam omogućavaju da utvrdimo performanse podsistema diskova se dele u dve grupe: logički diskovi i fizički diskovi. Brojači logičkih diskova prikazuju vrednosti vezane za particije i logičke diskove dok brojači fizičkih diskova prikazuju vrednosti vezane za fizičke diskove. Da bi smo startovali sve disk brojače potrebno je da u komandom promptu otkucamo diskperf–y i resetujemo računar. Otkucajte diskperf /? u komandnom modu da bi ste videli koji su vam svičevi na raspolaganju. Ključne vrednosti su:
1. % Disk Time- Vreme koje je disk zauzet služeći zahteve za čitanjem i pisanjem. Ako je ova vrednost konstantno blizu 100 procenata onda je disk preopterećen.
2. Disk Queue Length- Prikazuje broj zahteva za čitanjem ili pisanjem koji čekaju na izvršenje u queue-u. Vrednost preko 2 ukazuje na problem.
3. Avg. Disk Bytes/Transfer- Prosečna količina bajtova koja prolazi kroz kontroler hard diska. Što je manja vrednost mogućnost uskog grla se povećava.
4. Disk Bytes/sec- Prikazuje količinu bajtova koja prolazi kroz kontroler u sekundi. Veća vrednost ukazuje na bolju operativnost diska.


USKA GRLA MREŽNOG SEGMENTA


Mrežni segment je prilično komplikovano nadgledati zbog kompleksnosti današnjih informatičkih sistema. Nekada je potrebno da nadgledamo mrežni deo operativnog sistema, nekada samu mrežnu kartu a nekad problem leži u nekom sasvim udaljenom mrežnom uređaju. Međutim, postoje neki standardni brojači koji mogu da nam pomognu u određivanju performansi mrežnog podsistema:
1. Server: Bytes Total/sec- Prikazuje broj bajtova koje je adapter primio ili poslao.
2. Server: Logon/sec- Ovaj brojač je koristan pri analiziranju mrežnog sadržaja na domen kontrolerima. Ukazuje na broj logon pokušaja koje korisnici ili servisi izvode u sekundi.
3. Server: Logon Total- Broj ukupnih logon pokušaja od poslednjeg podizanja operativnog sistema. Ova vrednost uvek samo raste.
4. Network segment: %Network Use- Određuje procentualno iskorištenje lokalnog mrežnog segmenta. Vrednost ispod 30% je poželjna. Brojači koji omogućavaju nadgledanje mrežnog segmenta se instaliraju instalacijom SNMP protokola.

Nakon što smo definisali i uklonili uska grla možemo da kažemo da naš sistem funkcioniše bez problema. Međutim, to i dalje ne znači da on radi kako bi mogao. Ako želimo da izvučemo maksimum iz opreme i iz softvera moramo da imamo veću ambiciju od puke operativnosti. Ako smo karakterizacijom utvrdili da je radna memorija ključna u operativnosti sistema onda bi bilo dobro da utvrdimo gde je ima viška, tačnije na kom segmentu mreže ona nije toliko potrebna. Ovaj proces se naziva "raspoređivanje" resursa i predstavlja nadogradnju na rešavanje uskih grla. Pre toga je potrebno da smo obavili predviđeni snapshot sistema, gde je koji resurs i koliko i na koji način upotrebljen i koliko se ta slika poklapa sa našim zahtevima. Ako smo toga svesni onda raspoređivanje može da počne. Bitno je da takođe budemo svesni porasta potreba za resursima. Glupo je da implementiramo rešenje koje će se pokazati pogrešnim i nedovoljnim kroz 6 meseci.
U narednom broju Omegamagazina govorićemo o tehnikama koje upravo predstavljaju nadogradnju na rešavanje uskih grla. Jedna od tih tehnika naziva se Forecasting i predstavlja osnovu za svako napredno projektovanje IT rešenja...

 

VRH STRANE

(c) 2003 OMEGA - sva prava zadržana