Pronađite i popravite 15 uskih grla u izvedbi

"Usko grlo" je predivan opisni pojam. Opisuje umjetno ograničenje na neki oblik komunikacije, interakcije ili prijenosa informacija. I navodi na vjerovanje da neka čarobna kombinacija sreće, novca i domišljatosti može razbiti to usko grlo i pustiti da sve dobre stvari teku.

Problem s uskim grlima u izvedbi je taj što ih je teško prepoznati. Je li to CPU? Mreža? Nespretni djelić koda? Često je najočitiji krivac zapravo nizvodno od nečeg većeg i tajnovitijeg. A kad zagonetke oko izvedbe ostanu nerazriješene, IT menadžment može se naći pred Hobsonovim izborom između priznavanja neznanja i izmišljanja izgovora.

Srećom, kao i kod medicinskih dijagnoza ili detektivskog rada, iskustvo pomaže. Oslanjajući se na naše godine slijetanja i eksperimentiranja, prikupili smo 15 najvjerojatnijih bolesti - i predložili lijekove - kako bismo vašoj IT operaciji pomogli u pronalaženju i rješavanju problema s performansama.

Neka od ovih uskih grla očiglednija su od drugih. Najvjerojatnije imate nešto za reći o nekim svojim podlim spojlerima (i voljeli bismo čuti vaše priče o njima). No identificiranjem uobičajenih ubojica brzine u IT disciplinama, nadamo se da ćemo pokrenuti vašu potragu za stvaranjem infrastrukture s najboljom izvedbom koju će vaši resursi dopustiti.

Br. 1: To vjerojatno nisu poslužitelji

Nadogradnje poslužitelja nekada su činile sve razlike, zbog čega je stara pila "Kad sve drugo zakaže, bacite na njega više hardvera" i danas prisutna. To je još uvijek točno u nekim slučajevima. Ali koliki je dio IT-a toliko računalno intenzivan? Općenito, možete uštedjeti puno vremena i novca okretanjem dlakave očne jabučice od poslužiteljskog hardvera. Donji kraj poslužiteljskog spektra ima više nego dovoljno konjskih snaga za rješavanje svakodnevnih zadataka.

Evo jednog konkretnog primjera. Na mreži koja broji više od 125 korisnika, činilo se da je stariji Windows kontroler domene zreo za zamjenu. Ovaj je poslužitelj izvorno pokrenuo Windows 2000 Server i prije nekog vremena nadograđen je na Windows Server 2003, ali hardver je ostao nepromijenjen. Ovaj HP ML330 s procesorom od 1 GHz i 128 MB RAM-a funkcionirao je kao kontroler domene Active Directory koji je nosio sve uloge AD FSMO, izvodio je DHCP i DNS usluge, kao i IAS (Internet Authentication Services).

Melasa, zar ne? Zapravo je zapravo posao izvrsno obavio. Njegova zamjena bio je HP DL360 G4 s procesorom od 3 GHz, 1 GB RAM-a i zrcalnim SCSI pogonima od 72 GB. Noseći sve te usluge, gotovo uopće nema opterećenja - a razlika u izvedbi je neprimjetna.

Lako je prepoznati programe koji će vam pojesti sav procesor i memoriju, ali oni su uglavnom prilično specijalizirani. Za gotovo sve ostalo skromna robna kutija učinit će trik.

Br. 2: ubrzajte te upite

Možete stvoriti najprijatniju aplikaciju na svijetu, ali ako pristup pozadinskim poslužiteljima baza podataka stvara usko grlo, vaši krajnji korisnici ili kupci neće biti sretni. Stoga fino podesite te upite baze podataka i povećajte performanse.

Tri osnovne mjere mogu vam pomoći poboljšati izvedbu upita. Prvo, većina proizvoda baze podataka uključuje alate (kao što je DB2 UDB za iSeries 'Visual Explain) koji mogu secirati vaš upit tijekom razvoja, pružajući povratne informacije o sintaksi i približno vrijeme različitih dijelova SQL izraza. Pomoću ovih podataka pronađite najduže dijelove upita i razložite ih dalje kako biste vidjeli kako možete skratiti vrijeme izvršenja. Neki proizvodi baze podataka uključuju i alate za savjete o izvedbi, poput Oracleova automatskog dijagnostičkog monitora baze podataka, koji pružaju preporuke (poput sugeriranja izrade novog indeksa) za ubrzavanje upita.

Zatim uključite alate za nadzor baze podataka na pripremnom poslužitelju. Možete koristiti proizvod za praćenje treće strane, kao što je Fidelia NetVigil, ako vaša baza podataka nema podršku za nadzor. S omogućenim monitorima, generirajte promet prema poslužitelju baze podataka pomoću skripti za testiranje učitavanja. Ispitajte prikupljene podatke da biste vidjeli kako su se izvršili vaši upiti dok su bili pod opterećenjem; ove vas informacije mogu dovesti do daljnjeg podešavanja upita.

Ako imate dovoljno poslužiteljskih resursa da prilično usko oponašate vaše mješovito okruženje za proizvodnju radnog opterećenja, možete izvršiti treći krug ugađanja upita pomoću alata za ispitivanje opterećenja, kao što je OpenSTA, plus praćenje baze podataka da biste vidjeli kako vaši upiti rade zajedno s drugim aplikacijama koje pogađaju baza podataka.

Kako se uvjeti baze podataka mijenjaju - s rastom volumena, brisanjem zapisa i tako dalje - nastavite testirati i podesiti. Često se isplati potruditi se.

Br. 3: koja cijena, zaštita od virusa?

Zaštita od virusa na kritičnim poslužiteljima osnovni je zahtjev, posebno za Windows poslužitelje. Utjecaj, međutim, može biti bolan. Neki su virusni skeneri napadniji od drugih i mogu značajno smanjiti performanse poslužitelja.

Pokušajte pokrenuti testove performansi sa i bez pokrenutog antivirusnog programa kako biste utvrdili utjecaj. Ako primijetite značajno poboljšanje bez skenera, vrijeme je da potražite drugog dobavljača. Također provjerite određene značajke. Onemogućite skeniranja u stvarnom vremenu i vrlo često ćete poboljšati performanse.

Bez obzira na to koliko je dobro napisana vaša poslovna logika, kad je rasporedite na srednji nivo, morat ćete podesiti okruženje vremena izvođenja poslužitelja aplikacija kako biste maksimizirali performanse.

Poput vintage stereo uređaja s mnoštvom gumba za podešavanje kvalitete zvuka, aplikacijski poslužitelji dobavljača kao što su BEA, IBM i Oracle nude vrtoglavi set kontrola. Trik je u tome da okrenite gumbe na pravi način, ovisno o atributima vaše aplikacije.

Br. 4: maksimiziranje srednjeg sloja

Bez obzira na to koliko je dobro napisana vaša poslovna logika, kad je rasporedite na srednji nivo, morat ćete podesiti okruženje vremena izvođenja poslužitelja aplikacija kako biste maksimizirali performanse.

Poput vintage stereo uređaja s mnoštvom gumba za podešavanje kvalitete zvuka, aplikacijski poslužitelji dobavljača kao što su BEA, IBM i Oracle nude vrtoglavi set kontrola. Trik je u tome da okrenite gumbe na pravi način, ovisno o atributima vaše aplikacije.

Na primjer, ako je vaša aplikacija teška za servlet, morat ćete omogućiti predmemoriranje servleta. Isto tako, ako vaša aplikacija koristi mnogo SQL izraza za podršku velikoj bazi korisnika, morat ćete omogućiti predmemoriranje pripremljenih izraza i postaviti maksimalnu veličinu predmemorije tako da bude dovoljno velika da podrži namjeravano radno opterećenje.

Jedno od glavnih područja u kojem ugađanje performansi može stvarno pomoći je s bazenom veze baze podataka. Postavite preniske minimalne ili maksimalne veze i sigurno ćete stvoriti usko grlo. Postavite ih previsoko i vjerojatno ćete vidjeti usporavanje koje je rezultat dodanih dodatnih troškova potrebnih za održavanje većeg spremišta veza.

Ako znate namjeravano radno opterećenje, podesite vrijeme izvođenja aplikacijskog poslužitelja tako što ćete uključiti alate za praćenje izvedbe kao što je IBM-ov Tivoli Performance Viewer za WebSphere na poslužitelju stupnjevanih aplikacija. Generirajte očekivanu količinu radnog opterećenja pomoću alata za stvaranje opterećenja, a zatim spremite rezultate nadzora i reproducirajte ih da biste analizirali koje gumbe treba prilagoditi.

Kada je u proizvodnji, dobra je ideja uključiti pasivno nadgledanje kako biste pratili vrijeme izvođenja. Ako se vaše radno opterećenje s vremenom promijeni, morat ćete izvršiti novi pregled izvedbe.

Br. 5: optimizirajte mrežnu povezanost

Većina poslužitelja srednje razine poduzeća sada imaju dual gigabitne NIC-ove, ali većina njih ne koristi drugu cijev. Štoviše, cijene gigabitnih prekidača pale su dolje. Uz vezu od 120 MB / s na vaš poslužitelj datoteka, brojni klijenti od 100 megabita mogu istodobno postići pristup datotekama s brzinom veze.

Čak i bez gigabitnog prebacivanja, NIC povezivanje treba biti glavna stvar. U najjednostavnijem obliku, spajanje dvaju NIC-ova daje vam suvišnost, ali dodajte uravnoteženje opterećenja prijenosa i možete učinkovito udvostručiti izlaznu širinu pojasa. Korištenje udruživanja uz pomoć prekidača pružit će isti učinak na dolazni promet. Gotovo svaki veći dobavljač poslužitelja nudi upravljačke programe za NIC udruživanje - a tu su i uslužni programi treće strane. To je veliko, jeftino pojačanje propusnosti.

Br. 6: Ukidanje vaših web poslužitelja

Možete li doista toliko toga učiniti za podešavanje web poslužitelja i maksimiziranje performansi? Zapravo postoji - uglavnom prilagođavanjem pregršta kritičnih postavki kako bi se podudarali s produkcijskim prometom koji očekujete.

Za web poslužitelje koji su već u proizvodnji započnite sakupljanjem statistike web poslužitelja u stvarnom vremenu (većina glavnih web poslužitelja ima tu ugrađenu funkciju). Zatim prijeđite na inscenaciju kako biste utvrdili koji parametri, ako postoje, trebaju prilagodbu.

Aktivirajte alate za praćenje izvedbe web poslužitelja na pripremnom poslužitelju. Izvršite test učitavanja i pregledajte relevantne parametre, poput vremena odziva, poslanih i primljenih bajtova te broja zahtjeva i odgovora.

Ključni parametri koje ćete željeti podesiti ovisno o količini prometa uključuju predmemoriranje, postavljanje niti i postavke veze.

Omogućiti predmemoriranje sadržaja koji se često koristi; neki web poslužitelji omogućuju dinamičko predmemoriranje datoteka na temelju korištenja, dok drugi zahtijevaju da odredite što će biti predmemorirano. Provjerite je li vaša maksimalna veličina predmemorije dovoljna za promet koji očekujete. A ako vaš web poslužitelj podržava ubrzanje predmemorije, omogućite i to.

Za postavke navoja i povezivanja postavite minimume i maksimume u skladu s očekivanim opterećenjem. Za veze ćete također trebati definirati maksimalni broj zahtjeva po vezi i postavku vremenskog ograničenja veze. Nemojte postavljati nijednu od ovih vrijednosti premalo ili preveliko jer bi to moglo usporiti.

Br. 7: jado WAN-a

Mislite li da trebate vratiti propusnost WAN-a? Možete jednostavno potrošiti svežanj na uređaje za oblikovanje prometa ili mehanizme za predmemoriranje u pokušaju da zaustavite korištenje propusnosti WAN-a. Ali što ako nije cijev?

Prvo najprije: prije nego što nešto kupite, steknite čvrstu predodžbu o tome koji promet prolazi WAN-om. Alati za mrežnu analizu poput Ethereal, ntop, Network Instrument's Observer ili WildPacket's EtherPeek NX mogu vam dati novi pogled na ono što je stvarno na žici.

Možda ćete otkriti da su vremena replikacije za vaš Active Directory postavljena prenisko i jednostavno konfiguriranje dužih intervala replikacije može vam kupiti prostor za disanje tijekom radnog dana. Mapiraju li neki korisnici na udaljenim lokacijama dijeljenja na pogrešne poslužitelje i povlačeći velike datoteke preko WAN-a, a da toga nisu svjesni? Plutaju li ostaci davno onemogućene IPX mreže? Neki se problemi s WAN-om svode na pogrešnu konfiguraciju aplikacije, gdje je promet usmjeren preko WAN-a kada je trebao ostati lokalni. Redovita izvješća o WAN obrascima prometa uštedjet će novac i glavobolje.

Br. 8: Igrajmo se lijepo

Prečesto se aplikacije, web usluge i web stranice iz više odjela u cijeloj tvrtki natječu za resurse poslužitelja. Iako je svaka od ovih komponenata možda sama po sebi dobro podešena, aplikacija iz drugog odjela koji također koristi iste proizvodne klastere može imati loše podešen upit ili neki drugi problem, što zauzvrat utječe na vaše korisnike ili kupce.

U kratkom roku, sve što možete učiniti je surađivati ​​sa administratorima sustava i odjelom koji ima problema s performansama kako biste postigli rješenje za svoje korisnike ili kupce. Dugoročno, stvorite zajednicu u svim odjelima koji koriste proizvodne klastere u kojima su vaši objekti raspoređeni. Radite u timovima kako biste osigurali da postoji odgovarajuće financiranje za scensko okruženje koje je uistinu reprezentativno za mješovito radno okruženje. U konačnici ćete htjeti razviti niz mjerila koja se mogu koristiti za provjeru mješovitih performansi radnog opterećenja u scenskom okruženju.

Br. 9: Keširanje, oblikovanje, ograničavanje, oh moj!

Ako je vaš WAN uistinu premali - a ne možete si priuštiti mrežu prijenosnika okvira na velike udaljenosti - oblikovanje prometa i predmemoriranje mogu pomoći u odčepljenju cijevi.

Konfiguracije oblikovanja prometa više su umjetnost nego znanost. Davanje prioriteta aplikacijama često je više političko nego tehničko, ali može imati ogromne učinke na opaženu mrežnu izvedbu.

Keširanje je posve drugačija zvijer. Zahtijeva manje posla od oblikovanja prometa, ali učinak će vjerojatno biti manji. Strojevi za keširanje pohranjuju i poslužuju lokalne kopije podataka kojima se često pristupa kako bi se smanjio WAN promet. Loša je strana što se dinamički sadržaj ne može istinski predmemorirati, pa e-pošta neće uživati ​​u istoj performansi.

Br. 10: Prediktivno krpanje

Na posao stižete u ponedjeljak tek da biste saznali da je hrpa stolnih računala obješena ili da je izvedba kritične aplikacije usporila puzanje. Nakon istrage utvrdite da je uzrok flaster primijenjen tijekom vikenda.

Zato su vam potrebni alati koji podržavaju vraćanje zakrpa. Još je bolje da uključite testiranje zakrpa kao dio strategije upravljanja zakrpama. Prvo morate redovito popisovati programe i tehnologije koji se igraju na stolnim računalima i poslužiteljima. Većina alata za upravljanje sustavima, poput Microsoftovih SMS-a, imaju mogućnost automatskog inventara.

Zatim replicirajte aplikacije i tehnologije u pripremno okruženje. Ako vaš operativni sustav i softver za infrastrukturu ne uključuju alate za testiranje zakrpa, nabavite alat treće strane poput FLEXnet AdminStudio ili Wise Package Studio.

Možete i napisati neke skripte za funkcionalno korištenje platforme ili tehnologije uz najnovije zakrpe u igri. Morat ćete ponoviti ovaj scenarij (i prilagoditi skripte) kako dolaze nove zakrpe i kako se vrše promjene softvera.