Page History
| Navitabs | ||||||
|---|---|---|---|---|---|---|
| ||||||
Indhold
| Table of Contents |
|---|
Introduktion
Dette dokument beskriver udvikling og afvikling af jmeter-tests med NSP Performancetest Framework.
Performance
Dokumentet her beskriver performancetest for Verifikationssnitfladen i Samtykkeservicen
Først beskrives de forskellige typer test data output, og hvordan de anvendes i analysen. Herefter skitseres scope og afvikling af testene samt performancekravene.
Se i øvrigt krav til performance test og rapport på siden https://www.nspop.dk/display/public/web/Performancekrav
Performanceanalyse
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
- I/O på netværk
- Hukommelses forbrug
- Garbage collection
Disse undersøgelser foretages vha. de forskellige log-filer, som genereres under performancetesten. 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
- For rapporten vedr. forespørgsler gælder
- De nedenstående grafer som er dannet fra denne log er lavet i splunk af Arosii.
- (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/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/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/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 sluttid. 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 logning-interval, hvorfor tallene/graferne kun kan bruges som en generel betragtning over hele testperioden.
Scope og afvikling
Scope
Testene involverer følgende komponenter
- Samtykkeservicen - Verifikationssnitfladen
- NSP Performancetest Framework
Der er ikke målinger på database serveren (MariaDB).
Der testes på følgende to operationer i verfikationssnitfladen:
- ConsentForUserCheck
- ConsentForDataCheck
I begge tilfælde kaldes med en serie af forskellige borger-CPR-numre, som kan angives via en tekstfil. Sundhedsfagliges id og organisation sættes før testens start.
For ConsentForDataCheck kan man yderligere angive antallet af "Consent Data Registrations" der tjekkes for per request, og hvilke SOR-koder den kalder med (den cykler blot igennem listen svarende til antallet af registrations i kaldet).
Der er også mulighed for at slå "WS-Addressing" til og fra, da det har været påkrævet i ældre versioner af "verification" i Samtykkeservicen.
Afvikling
Performancetesten afvikles på følgende måde
- Testen køres på et test system opsat af Netic
- Testen laves i standard NSP Performance Framework, udviklet i JMeter
- Opdater CSV file path i JMeter så CPR-numrene til testen kan indlæses
- Ligeledes sættes hostname og andre konfigurationer (fx antal kørsler, tråde, etc)
- 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 typisk 15 minutter per iteration
Krav
Skal afklares.
Baggrundsdata
Database
Databasen skal indeholde en kopi af produktion.
Udførsel af test
Forberedelse
Testen hentes fra https://git.nspop.dk/projects/NT/repos/performance-framework i den revision, der er angivet som release for SDS-7721.
Databasen klargøres.
Der skal være en kørende version af Samtykkeservicen, man kan kører imod. Filen host.properties skal være sat korrekt i NSP Performancetest Framework.
Kørsel
Når databasen er på plads, servicen kørende og testen konfigureret, kan testen afvikles.
Mulige Distributionen at vælge til test
| Minlog2 distributions |
|---|
| test10_10 |
| test10_50 |
| test10_10 |
| test10_250 |
| test10_500 |
| test300_500 |
| test300_1000 |
| test300_2500 |
| test900_10 |
test900_50 |
test900_100 |
test900_250 |
test900_500 |