![]() |
||
| Eksempler på løste opgaver Case 1: Performanceproblemer Case 1 Udfordring:
Imidlertid påtog ingen af disse sig et ansvar for at identificere årsagen til problemet. Problem analyse:
Ved anvendelse af opsamlede belastningsstatistikker kunne det konstateres,
at de største problemer faldt sammen med at database serveren anvendte
betydelige mængder tid både på CPU'en og til I/O. Problem løsning: De 3 fundne SQL-sætninger kunne optimeres betydeligt ved dels omskrivning og dels oprettelse af nyt index. Denne proces med analyse af opsamlede belastningsstatistik-ker fortsattes over et stykke tid med et så godt resultat, at firmaet begyndte at overveje at nedgradere databaseserveren fra 3 til 2 CPU'er (af hensyn til hosting omkostninger). Undervejs i processen blev der klaget over forringede svartider
på et bestemt tidspunkt. Ved at undersøge de opsamlede belastningsstatistikker
for det pågældende tidspunkt kunne det konstateres, at problemet
ikke skyldes aktivitet i databasen og ved nærmere informationsindsamling
blev det klart, at problemet kunne føres tilbage til kopiering
af mange store filer på SAN'et. Konklusion:
en analyse, som tager udgangspunkt i brugernes oplevelser sammenholdt
med tidsanvendelsen kunne identificere netop de (relativt få) indgreb,
der skulle gøres for at få løst problemet. Case 2: Udfordring:
Applikationen blev normalt leveret til en Microsoft SQL-server database,
men var til dette projekt leveret til en Oracle database, hvilket resulterede
i en usikkerhed pga. manglende erfaring. Problem analyse:
Den oprindelige plan for analyseforløbet blev ændret således,
at udgangspunktet blev en analyse af teknologistakken i sin helhed. Der
blev afviklet en serie af afgrænsede tests, som reproducerede de
væsentligste problemer fra svartidstesten. Samtidigt blev al tilgængelig
instrumentering (både i databasen og applikationsserveren) aktiveret. Cirka halvdelen af tidsforbruget i databasen kunne føres
tilbage til en bestemt type disklæsninger, som kunne caches (men
som initielt ikke var blevet konfigureret sådan). Indsatsen kunne nu rettes på applikationsserveren
og de dele af applikationen, der hørte til her. Konklusion:
Ved en fokus på, hvor tiden blev anvendt, kunne det meget tidligt
i processen afgøres i hvilke komponenter, der skulle findes forbedringer
og der kunne meget tidligt gives et estimat for det mulige resultat sammenholdt
med den nødvendige indsats. |
|||||||||||||||||||||||||||||||||||||||