Scope
Performancetesten består af et antal kald til læsning af allergier for en liste af 50.000 personer (cpr numre).
Testen involverer følgende komponenter
- LAR service som første led (v. 1.0.2)
- Cave service som andet led (v. 1.0.2)
- FHIR database som tredie led (v. 3.7.0)
- Derforuden har integrationen til minlog, behandler relation og min spæring være aktiveret under kørslen
Performance krav
Kravene fra fra kravspecifikationen lyder som følger:
- Systemets svartider måles på en klient i umiddelbar nærhed af LAR service snitfladen, således at der medregnes et netværkskald mellem klient og service.
- Systemets gennemsnitlige svartid ved læsning skal ligge under 200ms.
- Forudsætninger for ovenstående svartider er, at:
- systemet anvendes af 10 samtidige brugere, der udfører et kald pr. sekund med 1000ms tidsmæssig forskydning på forskellige CPR numre.
- databasen indeholder 50.000 allergi-registreringer på et tilsvarende antal patienter.
- eksterne servicekald er deaktiveret
- der er ikke andre services der anvender infrastrukturen.
- der anvendes to applikationsservere til hver service, svarende til en NSP med to søjler til LAR servicen og to Back-End servere til CAVE servicen. Servicekald fordeles efter Round-Robin princippet mellem hver af de to servere.
- Serverne er hardwaremæssigt konfigureret svarende til NSP applikationsservere.
TODO: addresser hvert punkt: foreløbige noter:
1: kan vi tage talene uden netværk?
2: vurder
3a: find det sted hvor throughput er dette: 10 kald per sek
3b: inden testen startes er en database med 50.000 allergier fordelt på 50.000 patiener klargjort
3c: de eksterne servicekald var aktiveret under kørslen. Afhængig af udfald overvejes om en kørsel uden aktivernig er nødvendig.
3d: var dette tilfældet?
3e: ?er dette tilfældet på test
3f: går ud fra dette er tilfældet?
Afvikling
Performance testen er afviklet på følgende måde
- der er anvendt et test certifikat. Og der trækkes et idkort i setup fasen af testen, dvs hver gang en node startes på. Den del er holdt ude af performance målingen
- testen er kørt på test system opsat at Netic: cstag-lb.cnsp.netic.dk:8080
- testen er lavet i standard NSP performance frameworket (v.2.0.0), udviklet af Arosii i JMeter.
- Der er kørt 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.
- Testplanen der er kørt er test900, og den er kører 15 minutter per iteration.
- System under test (LAR og CAVE servicen) er kørt på på 4 docker containere, fordelt ligeligt på 2 fysiske maskiner (?1)
Se iøvrigt LAR test vejledning afsnit 2.3 performance test for detaljer.
Performance tal
(vedhæft filerne?)
Under afviklings af testen er der udskrevet en række log filer som viser tilstanden af test systemet. De følgende afsnit gennemgår de vigtigste tal fra disse filer.
JMeter log data
(/stress01.nsp-test.netic.dk-lar/lar_listallergy_test900_stress01.nsp-test.netic.dk_master_20190513_114050.tar.gz.log)
I JMeters hoved log fil kan ses, at der er kørt 3 runder:
| Runde | Tråde | Nodes | Starttid | Sluttid | Throughput | Forventet |
|---|
| 1 | 7 | 2 | 2019-05-13_11-10-14 | 2019-05-13_11-25-18 | 20,42 kald per sekund |
|
| 2 | 10 | 2 | 2019-05-13_11-25-41 | 2019-05-13_11-40-44 | 20,84 kald per sekund |
|
| 3 | 10 | 3 | 2019-05-13_11-41-12 | 2019-05-13_11-56-17 | 25,09 kald per sekund |
|
Den endelige måling af throughput er 25,09 kald per sekund. ?2
Fejlprocentet på den fulde kørsel er 0,01 %.
Konklusion
Fejlprocess vurdering