Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...






Performance

...

Det følglende beskriver performance test og analyse for

MinLog2 - Performancetest rapport borger lookup
MinLog2 - Performancetest rapport medhjælper lookup
MinLog2 - Performancetest rapport minlog1 lookup

Først er kravene til rapporten listet, dernæst beskrives de forskellige typer test data output, og hvordan de anvendes i analysen. Derefter skitseres performance kravene for begge test. Og herefter analyses data.

Krav til performance rapport

Når en performancetest er afviklet skal der produceres en performancetestrapport. Denne skal redegøre for hvilke testplaner/distributioner der har været afviklet og skal præsentere findings ifm hver test. Følgende indhold forventes som minimum i en performancerapport:

  • Det maksimale Throughput målt under testen og hvorledes dette forholder sig til det forventede brug.
  • Gennemsnitlig svartid (100% og 95% fraktil) for de forskellige iterationer samt hvilket Throughput der skabte denne svartid.
  • Bevist for at svartidskravene i kravspecifikationen er overholdt.
  • Grafer over Throughput, Gennemsnitlig svartid, CPU belastning, Heap forbrug, IO wait time.
  • En analyse af hvad der er den begrænsende faktor for Throughput og svartid.
  • Foreslag til hvorledes Throughput kan øges og svartid kan mindskes baseret på de observationer der er foretaget.

...

Alle disse logfiler og målinger

...

Under en performancetest opsamles samles med de logfiler som komponenten producere samt følgende målinger:

  • vmstat - Opsamler målinger af virtuel memory-forbrug på process niveau.
  • dockerstat - Opsamler målinger af resource-forbrug for en Docker process.
  • jstat - Opsamlinger målinger af f.eks. Garbage Collection i en Java process.
  • iostat - Opsamlinger målinger af io-forbrug (f.eks. disk) på et system.

Alle disse logfiler og målinger samles med de logfiler som NSP Performance Framework producerer og udleveres til komponentleverandøren, så denne kan producere grafer mv. til performancetestrapporten.

...

NSP Performance Framework producerer og udleveres til komponentleverandøren, så denne kan producere grafer mv. til performancetestrapporten.

Performance analyse

For alle test gælder følgende:

Udover det fremsatte performance krav på svartid, er der en række andre punkter som bør analyseres for at vurdere servicens sundhed.

Følgende punkter bliver derfor undersøgt:

  • Svartid per kald
  • Antal kald per sekund
  • Cpu status
  • io på netværk
  • Hukommelses forbrug
  • Garbage collection

Der er ikke målinger på database serveren (MariaDB) eller Kafka serveren.

Undersøgelserne foregår vha. de forskellige log filer, som er genereret under performance testen. De følgende afsnit gennemgår de vigtigste tal fra disse filer:

  • JMeter log data belyser
    • Faktisk antal test iteration kørt
    • Throughput
    • (Ex: docker01.bo.stage.nsp.netic.dk-perflogs/minlog_listlogstatements_borger_stress01.nsp-test.netic.dk_master_20200309_110341.tar.gz.log)
  • Access log (applikations server information) belyser
    • Antal kald per sekund
    • Svartid per kald
    • (Denne log er ikke inkluderet da den indeholder personfølsomme data) 
  • vmstat log (system information) belyser
    • cpu status
    • skrivning til disk
    • Logning sker hver 10. sekund
    • (Ex: docker01.bo.stage.nsp.netic.dk-perflogs/docker01.bo.stage.nsp.netic.dk-vmstat-20200309101455.log)
  • jstat log (JVM information) belyser
    • Hukommelse (heap) forbrug 
    • Garbage collection
    • Der er tidsstempel per log linie
    • (Ex: docker01.bo.stage.nsp.netic.dk-perflogs/docker01.bo.stage.nsp.netic.dk-docker-jstat-gc-stage_bo_comp_minlog_backend_lookup.log)
  • docker stats log (container information) belyser
    • Hukommelse
    • io på netværk
    • Der er ikke noget fast logningsinterval.
    • (Ex: docker01.bo.stage.nsp.netic.dk-perflogs/docker01.bo.stage.nsp.netic.dk-docker-jstat-gc-stage_bo_comp_minlog_backend_lookup.log)

Hver kørsel/iteration (øgning af belastning) har en start og slut tid. Filerne access.log og jstat.log indeholder tidstempler. Dette muliggør at de kan mappes til en given iteration. Filen vmstat har ikke tidstempel. Men da den er startet samtidig med jstat loggen og logintervallet er kendt på 10 sekunder, kan iterationernes placering i data beregnes. Docker stats loggen har hverken tidsstempel eller fast logninginterval, hvorfor tallene/graferne kun kan bruges som en generel betragtning over hele test perioden.

I det nedenstående kan man klikke på de enkelte grafer for større billede. De enkelte iterationer er tegnet ind som lodrette mørke streger; 2 streger per iteration (start og slut tidspunkt).