Indhold


Indledning

Dette dokument indeholder den anden performance test, som er kørt for Minlog2. Den indeholder en analyse af de log data, som er samlet op under test kørslen. Analysen dækker

Minlog1 lookup er denne gang undladt da dette interface udfases.

Detaljer omkring performance test vejledningen findes  her. Her kan læses omkring de log filer, som ligger til grund for analysen, hvilket scope testen er kørt i, hvordan test er kørt og hvilke krav, der er til komponenten under test.

Se iøvrigt krav til performance test og rapport på siden https://www.nspop.dk/display/public/web/Performancekrav

Læsevejledning

Læseren forventes at have kendskab til National Sundheds-IT's platform NSP, samt generelt kendskab til WildFly applikation server, MariaDB, Kafka og java.

Dokumenthistorik

Version

Dato

Ansvarlig

Beskrivelse

1.0

14-12-2020

KvalitetsIT

Performance test 2











Definitioner og forkortelser

Definition

Beskrivelse

NSP

Den nationale service platform (inden for sundheds-IT)


MinLog2 - Performancetest rapport borger lookup

Performance testen består af en række kald til opslag efter logninger på forskellige cpr numre. Et sådant enkelt opslag vil svare til, hvad en borger vil udføre, skulle han ville se, hvad der er registreret om ham.

Testen udført er komponent "minlog2", testplan "lookupidws" og distribution "test900".

MinLog 2 service er version 2.0.25perf og NSP standard performance test framework version 2.0.21.

De rå test resultater er vedhæftet denne side (minlog2_lookupidws_test900_run1.tar.gz)

JMeter log

JMeter hoved filen beskriver overordnet testens resultat. Her kan  kan ses, at der er kørt 10 iterationer med test, deres tidsinterval , throughput og fejlprocent for hver.

Iteration

Tråde

Nodes

Starttid

Sluttid

Throughput (kald per sekund)

Fejlprocent
1





2





3







4





5





6





7





8





9





10





Det fremgår også af filen, at den endelige måling af throughput er 37,12 kald per sekund.

Samt at fejlprocentet på den fulde kørsel er 0 %. 

Access log

Vurdering

Vmstat log

Vurdering

Jstat log

Vurdering

Docker stats log

Vurdering

Konklusion


MinLog2 - Performancetest rapport medhjælper lookup

Performance testen består af en række kald til opslag efter logninger på forskellige cpr numre i medhjælper loggen. Et sådant enkelt opslag vil svare til en læge, der vil verificere, hvilke logninger en given medhjælper har givet anledning til.

Testen udført er komponent "minlog2", testplan "lookup_onbehalfof" og distribution "test900".

MinLog 2 service er version 2.0.24perf og NSP standard performance test framework version 2.0.19

De rå test resultater er vedhæftet denne side (minlog2-lookup_onbehalfof_test900_run1.tar.gz)

Indledningsvis skal siges, at servicen kørende på docker1 gik i fejl sidst i testen pga memory problemer. Der mangler derfor access log data for ca. 10 minutter i slutningen af testen.

JMeter log

JMeter hoved filen beskriver overordnet testens resultat. Her kan  kan ses, at der er kørt 12 iterationer med test, deres tidsinterval , throughput og fejlprocent for hver.


Iteration

Tråde

Nodes

Starttid

Sluttid

Throughput (kald per sekund)

Fejlprocent
1




0,030 %
2




0,025 %

3






0,030 %
4




0,015 %
5




0,025 %
6




0,030 %
7




0,030 %
8




0,030 %
9




0,030 %
10




0,050 %
11




0,027 %
12




0,878 %

Det fremgår også af filen, at den endelige måling af throughput er 49.61 kald per sekund.

Samt at fejlprocentet på den fulde kørsel er 0,027 %. 

Throughput falder mellem iteration 11 og 12. Og der er en forøgning af fejl i den sidste iteration.

Access log

Vurdering

Vmstat log

Vurdering


Jstat log

Vurdering


Docker stats log

Vurdering


Konklusion

MinLog2 - Performancetest rapport registration

Performance testen består af en række kald til registrering af minlog2 data med forskellige cpr numre. I den kørte test, er der 500 registreringer per kald. Sidst, der blev kørt performance test for registration var der kun een registrering per kald. Så for hvert kald der laves, er der mere at lave.

Testen, som er udført er, komponent "minlog2", testplan "registration" og distribution "test300_500".

MinLog 2 service er version 2.0.25 og NSP standard performance test framework version 2.0.22.

Der analyseres access og stats log fra registration komponenten, samt stats log fra kafka-consumer komponenten. Derudover ses der på kafka consumer lag for begge.

De rå test resultater er vedhæftet denne side (minlog2-registration-test900-run3.tar.gz).  

JMeter log data

JMeter hoved filen beskriver overordnet testens resultat. Her kan ses, at der er kørt 5 iterationer med test, belastningen i form af tråde og nodes, deres tidsinterval , throughput og fejlprocent for hver:

Iteration

Tråde

Nodes

Starttid

Sluttid

Throughput 

(kald per sekund)

Faktisk

forbedring

Forventet

forbedring

Fejlprocent
1522020-12-10_13-15-382020-12-10_13-20-492,76

-
2822020-12-10_13-21-552020-12-10_13-27-034,1951 %36 %0,08 %
31122020-12-10_13-27-572020-12-10_13-33-074,241 %22 %0,47 %
41132020-12-10_13-34-142020-12-10_13-39-217,269 %30 %0,05 %
51142020-12-10_13-40-202020-12-10_13-45-306,25-13 %19 %-

Det fremgår også af filen, at den endelige måling af throughput er 6,25 kald per sekund.

Access log data

Denne log findes for hver applikations server (docker container) hvor registration komponenten har kørt.

Her findes data for hvert enkelt kald, der er lavet til minlog servicen, herunder hvor lang tid et kald har taget (Duration) samt hvornår kaldet er udført. Ud fra loggens data kan man også beregne hvor mange kald, der udføres i en given periode. 

Følgende tabel viser en række beregnede data fra access loggen fordelt på applikations server (container) og test iteration. Nederst i tabellen er tallene for hver applikations server lagt sammen. Test iteration er beregnet ved at sammenligne tidstempel fra access log med start og sluttidspunktet for iterationen. 

De beregnede data er antal kald, kald per sekund i gennemsnit (hver iteration er 300 sekunder) samt tidsforbrug per kald i millisekunder. Derudover er antal kald der tager 6,5 sekund eller mere samt 15,5 sekund eller mere talt sammen for at kunne vurdere performance kravene.

Application server

Iteration

Antal kald

Kald per sekund

Tidsforbrug (sekund)

Kald >= 6,5 sekundKald >=15,5 sekund
docker01.cnsp.stage.nsp.netic.dk14191,403,25

10 = 2,39 %

0 = 0 %

26342,113,4215 = 2,37 %0 = 0 %

36402,134,6994 = 14,69 %0 = 0 %

410893,634,1220 = 1,84 %0 = 0 %

59543,186,23372 = 38,99 %0 = 0 %
docker02.cnsp.stage.nsp.netic.dk14181,393,268 = 1,91 %0 = 0 %

26342,113,4511 = 1,74 %0 = 0 %

36442,154,6891 = 14,13 %0 = 0 %

410903,634,1617 = 1,56 %0 = 0 %

59553,186,38412 = 43,14 %0 = 0 %
Total
7477
4,571050 = 14,04 %0 = 0 %

Data serier i grafen er:

Data serier i grafen er:

Vurdering

Af tabel og grafer fremgår det, at jo flere nodes og tråde (disse øges per iteration) jo flere kald kommer der igennem per tidsenhed. 

Der er en stigende tendens af svartiden som antallet af nodes/tråde øges. Og I den sidste iteration (5) er den meget højere end I starten af kørslen.

Performance kravene er

Kravet med maks 2 % over 15,5 sekund overholdes. Der er ingen med så høj en svartid. Derimod overholdes kravet omkring maks 5 % over 6,5 sekund ikke I flere af iterationerne. Iteration 3 har 14 % over 6,5 sekund i svartid, og iteration 5 er helt oppe på næsten 40 % over 6,5 sekund svartid. Regnes der lidt på talene, kan det ses, at sætter man en grænse på 9,2 sekund per kald er der under 5 %, der overskrider dette.

Vmstat log


Vurdering

Jstat log

Vurdering

Docker stats log

Vurdering

Kafka consumer lag

Vurdering

Konklusion