BloggFeilsøking

Feilsøking av ytelsesproblemer, del 3: Disk

Slik feilsøker du diskytelse og unngår vanlige fallgruver

5. oktober 2022
Deploi-teamet
Feilsøking
Feilsøking av ytelsesproblemer, del 3: Disk

I nyhetsbrevet for mai i år startet vi en serie om feilsøking av ytelsesproblemer på servere. Serien består av fire deler: prosessorkraft, minne, disk og nettverk. Hvis du ikke har lest del 1 og 2, eller ønsker å lese introduksjonen på nytt, finner du dem her:

Del 3: Disk

Disk brukes til å lagre data over tid. For å gjøre dette må noe fysisk på disken endres. Dette er fordi dataene skal kunne ligge der selv om serveren skrues av eller strømmen går. Derfor er disker betydelig tregere enn serverens minne. Data som ligger i minnet er lettere tilgjengelig, men vil forsvinne hvis serveren skrues av eller strømmen går.

Data som skal behandles bør ligge i minnet. Dette ordner man i oppsettet av serveren, innstillingene i programmene som kjører på den eller i arkitekturen til programmene man lager. Hvis serveren går tom for minne, har den to muligheter. Den kan velge å avslutte vilkårlige programmer, men det er ofte ikke ønskelig. Alternativt kan den velge å benytte disken som ekstra minne, noe som kalles "swapping". Dette er en nødløsning, og kan gi store ytelsesproblemer fordi raske operasjoner blir byttet ut med trege.

Når man opplever ytelsesproblemer, bør man derfor undersøke om serveren bedriver swapping. På Linux-baserte operativsystemer kan man kjøre kommandoen "vmstat -S M 2". Se i kolonnene "si" og "so". Hvis disse er 0, foregår det ikke swapping på serveren.

På Windows Server kan man åpne Task Manager, gå til fanen Performance og velge Resource Monitor. Her velger man processes, og ser under "Hard faults / sec". Hvis det er høye verdier i disse kolonnene, foregår det swapping på serveren, og ytelsen vil kunne være svært redusert.

Ønsker du å feilsøke høy minnebruk på serveren, se del 2 av denne serien.

Hvis du har konfigurert operativsystemet og programmene for riktig bruk av disk og minne, kan du fremdeles oppleve ytelsesproblemer ved bruk av feil type disk.

Disker har to mål på ytelse: Antall "små" skrive-lese-operasjoner per sekund (IOPS) og sekvensiell overføringshastighet, som er hastigheten for en "stor" skrive-lese-operasjon (én lang sekvens).

Det finnes to hovedtyper disk, og disse har ulik ytelsesprofil. SSD-disker har høy IOPS (titusentalls), og HDD har lav IOPS (hundretalls). Både SSD og HDD har høy sekvensiell overføringshastighet, ofte flere hundre MB per sekund. Hos Deploi er SSD standard, og de fleste kundene bruker kun det. Noen leier HDD for å spare penger, da de vet at applikasjonen ikke krever høy IOPS.

Man kan enkelt se hvor mye last det er på diskene på serveren. På Linux-baserte operativsystemer kan man kjøre kommandoen "iostat -m 5". Da vil det vises hvor mange IOPS som utføres under "tps", og hvor mye sekvensiell overføring det er under MB_read/s og MB_wrtn/s. På Windows Server kan man åpne Resource Monitor, åpne Disk, og se på kolonnene Total (B/sec), Disk reads/sec og Disk writes/sec. Den første angir sekvensiell overføring, de to andre IOPS.

Hvis IOPS er for høy kan man undersøke om programmene leser eller skriver mange små datamengder. Hvis dette er tilfelle, bør programmene endres så de ikke behøver dette. For programmene betyr det å øke mengden minne som brukes. Minne har svært høye tall for IOPS og sekvensiell overføring: millioner av lese-skrive-operasjoner og mange GB/s i overføring. Mange programmer, som for eksempel databaser, har konfigurerbare buffer-størrelser. Hvis man øker disse, vil programmet gjøre mer i minnet og mindre på disk.

Den vanligste årsaken til at servere hos Deploi får problemer er at disken er full. Du kan lett sjekke om diskene dine er fulle. På Linux-baserte operativsystemer, bruk kommandoen "df -h". På Windows Server åpner du This PC. Trenger du mer disk, kan du enkelt øke størrelsen på diskene dine i vårt kundepanel.

Relevante tjenester

Trenger du hjelp?

Vårt team hjelper deg gjerne med spørsmål om server, hosting, sikkerhet og drift. Ta kontakt for en uforpliktende prat.