Dette dokuement beskriver performance test og analyse for
For begge test gælder følgende:
Udover det fremsatte performance krav for notification broker henholdsvis pull point på svartid, er der en række andre punkter som bør analyseres for at vurdere servicens sundhed.
Følgende punkter bliver derfor undersøgt:
Da NAS servicene ikke skriver til disk selv, bliver io til disk ikke undersøgt. Der er ikke målinger på database serveren (MariaDB). Der er målinger fra Kafka serverne.
Undersøgelserne foregår vha. de forskellige log filer, som er genereret 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 er startet 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).
Performance testen består af en række kald til skrivning af adviseringer.
Testen involverer følgende komponenter
Performancekravene er som følger:
Kommentarer til forudsætninger og krav
Performance testen er afviklet på følgende måde
Se iøvrigt NAS2 test vejledning afsnit performance test for detaljer.
De rå test resultater er vedhæftet denne side (nas-nb-perftest.tgz)
Der er kun kigget på performance målinger/tal, der vedrører selve notification broker servicen.
JMeter hoved filen beskriver overordnet testens resultet.
Her kan kan ses, at der er kørt 5 iterationer med test, deres tidsinterval og throughput for hver.
Iteration | Tråde | Nodes | Starttid | Sluttid | Throughput |
|---|---|---|---|---|---|
| 1 | 5 | 2 | 2019-10-07_11-21-21 | 2019-10-07_11-36-25 | 399.36 kald per sekund |
| 2 | 8 | 2 | 2019-10-07_11-36-54 | 2019-10-07_11-51-57 | 523.03 kald per sekund |
3 | 8 | 3 | 2019-10-07_11-52-27 | 2019-10-07_12-07-31 | 719.42 kald per sekund |
| 4 | 8 | 4 | 2019-10-07_12-08-06 | 2019-10-07_12-23-09 | 910.14 kald per sekund |
| 5 | 8 | 5 | 2019-10-07_12-24-30 | 2019-10-07_12-39-33 | 1010.45 kald per sekund |
Det fremgår også af filen, at den endelige måling af throughput er 1010.45 kald per sekund.
Samt at fejlprocentet på den fulde kørsel er 0 %.
Kravet til testen er, at der skal køres med 10 adviseringer i sekundet. NSP's test framework fungerer med en bestemt belastning i testen som gradvis øges. I første iteration har testen kørt med 400 kald per sekund, hvilket ligger højt over kravet til testen.
Derfor konkluderes det, at ud fra JMeter loggens data, er performance kravets forudsætning om 10 adviseringer så rigeligt overholdt.
Denne log findes for hver applikations server (docker container).
Her findes data for hvert enkelt kald, der er lavet til notification broker services, herunder hvor lang tid et kald har taget (Duration). Ved at kigge på de kald, der er foretaget til servicen kan den gennemsnitlige tid et kald tager beregnes.
Følgende tabel viser en række beregnede data fra access loggen fordelt på applikations server (container), test iteration og http kode. 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. Http koden findes i access loggen (kald returnerede med fejl (500) eller ingen fejl(200)).
De beregnede data er antal kald, kald per sekund i gennemsnit (hver iteration er 900 sekunder) samt gennemsnitlig tidsforbrug per kald i millisekunder.
| Applikations server | Iteration | HttpCode svar | Antal kald | Kald per sekund | Tidsforbrug (ms) |
|---|---|---|---|---|---|
| docker01.bo.stage.nsp.netic.dk | 1 | 200 | 179.830 | 199,8 | 9 |
| 2 | 200 | 235.357 | 261,5 | 11 | |
| 3 | 200 | 324.407 | 360,5 | 13 | |
| 4 | 200 | 409.904 | 455,4 | 13,8 | |
| 5 | 200 | 454.973 | 505,5 | 15,9 | |
| docker02.bo.stage.nsp.netic.dk | 1 | 200 | 179.831 | 199,8 | 10 |
| 2 | 200 | 235.356 | 261,5 | 11 | |
| 3 | 200 | 324.406 | 360,5 | 13 | |
| 4 | 200 | 409.904 | 455,4 | 14 | |
| 5 | 200 | 454.982 | 505,5 | 15 |
Performance testen består af en række kald til læsning af pull points.
Testen involverer følgende komponenter
Performancekravene er som følger:
Kommentarer til forudsætninger og krav
Performance testen er afviklet på følgende måde
Se iøvrigt NAS2 test vejledning afsnit performance test for detaljer.
De rå test resultater er vedhæftet denne side (nas-pp-perftest.tgz)
Der er kun kigget på performance målinger/tal, der vedrører selve pull point servicen.
JMeter hoved filen beskriver overordnet testens resultet.
Her kan kan ses, at der er kørt 4 iterationer med test, deres tidsinterval og throughput for hver.
Iteration | Tråde | Nodes | Starttid | Sluttid | Throughput |
|---|---|---|---|---|---|
| 1 | 5 | 2 | 2019-10-04_14-25-44 | 2019-10-04_14-40-50 | 53.48 kald per sekund |
| 2 | 8 | 2 | 2019-10-04_14-41-29 | 2019-10-04_14-56-35 | 90.4 kald per sekund |
3 | 11 | 2 | 2019-10-04_14-57-15 | 2019-10-04_15-12-21 | 109.17 kald per sekund |
| 4 | 11 | 3 | 2019-10-04_15-13-01 | 2019-10-04_15-28-08 | 111.07 kald per sekund |
Det fremgår også af filen, at den endelige måling af throughput er 111.07 kald per sekund.
Samt at fejlprocentet på den fulde kørsel er 0 %.
Kravet til testen er, at der skal køres med 20 kald til pull point servicen hver 10. sekund dvs. 2 per sekund. NSP's test framework fungerer med en bestemt belastning i testen som gradvis øges. I første iteration har testen kørt med 53 kald per sekund, hvilket ligger højt over kravet til testen.
Derfor konkluderes det, at ud fra JMeter loggens data, er performance kravets forudsætning om 2 kald så rigeligt overholdt.
TODO