Versions Compared

Key

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

...

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 samles med de logfiler som NSP Performance Framework producerer og udleveres til komponentleverandøren, så denne kan producere grafer mv. til performancetestrapporten.Se iøvrigt krav til performance test og rapport på siden https://www.nspop.dk/display/public/web/Performancekrav

Performance analyse

For alle test gælder følgende:

...

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).