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.

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.

Det har kun været muligt at få adgang til log filerne for 2 ud af de 4 testede applikationer (docker containere), hvorfor analysen af disse filer kun baserer sig på docker01 og docker02. Typisk er der ikke den store forskel på resultatet fra de forskellige applikationer.

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 8 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 52,96 kald per sekund.

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

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. Denne sum er kun ca. halvdelen af, hvad der totalt er håndteret, da log filerne kun findes  for 2 applikationer servere. 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 900 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 (ms)

Kald >= 6,5 sekundKald >=15,5 sekund
docker01.cnsp.stage.nsp.netic.dk1





2





3





4





5





6





7





8




docker02.cnsp.stage.nsp.netic.dk1





2





3





4





5





6





7





8




Total






Vurdering

Vmstat log

Vurdering

Jstat log

Vurdering

Docker stats log

Vurdering

Kafka consumer lag

Vurdering

Konklusion