Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Navitabs
rootMinLog2 - Leverancebeskrivelse
firsttabMinLog2
includeroottrue


Indhold

Table of Contents

...

Introduktion

Dette dokument beskriver udvikling og afvikling af jmeter tests.

Dokumenthistorik

Version

Dato

Ansvarlig

Beskrivelse

1.0

15-11-2018

Openminds

Oprettelse

1.114-11-2019LakesideOpdatering vedr. test krav
1.224-09-2020KvalitetsITOpdatering ifm. flytning af test til arosiis performance test framework

Performance

Det følgende beskriver performance test og analyse for

  • MinLog2 - Performancetest minlog1 lookup
  • MinLog2 - Performancetest medhjælper lookup
  • MinLog2 - Performancetest borger lookup
  • MinLog 2 - Performancetest registration

Først i dette afsnit beskrives de forskellige typer test data output, og hvordan de anvendes i analysen. Herefter skitseres scope og afvikling af testene samt performance kravene.

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:

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

Følgende punkter undersøges derfor:

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

Disse undersøgelser foretages vha. de forskellige log filer, som genereres under performance testen. De følgende afsnit gennemgår de vigtigste tal fra disse filer:

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

Scope og afvikling

Scope

Testene involverer følgende komponenter

  • MinLog 2 service
  • NSP kafka
  • Galera MariaDB cluster
  • NSP standard performance test framework

Versionen af MinLog2 og test frameworket varierer for hver test og fremgår nedenfor.

MinLog 2's overordnede arkitektur ses af følgende figur (kilde: arkitektur dokumentet)

Image Added

Lookup/forespørgsler test vedrører kun "lookup" komponenten, da der ingen opdateringer (registration ) foregår imens, og der dermed heller ingen aktivitet er på "consumer" komponenten.  Dette betyder konkret, at de tilsendte log filer, som vedrører "consumer" komponenten ikke analyseres for lookup rapporterne.

Registration består af 2 komponenter: registration komponenten, som modtager input og gemmer data ned i sin "lokale" kafka. Data herfra flyttes af mirrorMaker over på den centrale kafka i backoffice. Og den anden komponent kafka-consumer, der tager fra den centrale kafka og flytter data i databasen.

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

Afvikling

Performance testen afvikles på følgende måde

  • Testen køres på et test system opsat at Netic
  • Testen laves i standard NSP performance frameworket, udviklet af Arosii i JMeter.
  • Der køres en testplan med stadig øget belastning ved at øge antallet af tråde og noder indtil det målte throughput ikke længere vokser med tilsvarende mængde.
  • Testplanerne kører 15 minutter per iteration og for læsning hentes 30 entries per side.
  • System under test køres på 2 docker containere for lookup, og 4 containere for registration (docker01 og docker02 henholdsvis docker01, docker02, docker03 og docker04 i nedenstående)

Se iøvrigt MinLog 2 test performancetestvejledning for detaljer.

Krav

Servicemålene herunder er for henholdsvis MinLog 2 registreringsservices (svartider opdatering) og MinLog opslagsservices (Svartider forespørgsler).

...

Der skal være en kørende version af MinLog 2 servicen, man kan teste imod. Og host.properties skal være sat korrekt op jf. arosiis performance test framework.

Kørsel

Når databasen er på plads, servicen kørende og testen configureret kan følgende køres:

Lookup

run_test.sh -h hosts.properties -p 9012 minlog listlogstatements test900

Lookup on behalf of 

run_test.sh -h hosts.properties -p 9012 minlog2 lookup_onbehalfof test900

Lookupid

run_test.sh -h hosts.properties -p 9012 minlog2 lookupidws test900

Registration

run_test.sh -h hosts.properties -p 9012 minlog2 registration test900


(distributionenerne *test900 kører 15 minutter, der findes også kørsler til 10 sekunder (*test10) )

Version

MinLog2 Release

Performance test revision

2.*.*
2.0.*






'* ' betyder hvilken som helst

Performance tests

Lookup

Der er lavet en LookupRequestSampler. Den tager et cpr som input og forventer der er et IDCard på threadcontexten. Med inputtet laver den et kald til GetLogStatementsForCPRPerson. Vær opmærksom på at testen er bundet til et certifikat og dermed et idcard og dermed et lookup. 

...