Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

  • NAS 2 notification broker service
  • NAS 2 pull point service

Først beskrives de forskellige typer test data output, og hvordan de anvendes i analysen. Derefter skitseres performance kravene for begge test. Og herefter analyses data.

Analysen af performance test dataene har ikke givet anledning til bekymring eller identificering af flaskehalse.

Performance analyse

For begge test gælder følgende:

...

  • NAS 2 Notification Broker service version 2.0.6
  • NSP kafka
  • Gallera Galera MariaDB cluster
  • NSP standard performance test framework version 2.0.10

...

Kravet til testen er, at der skal køres med 10 adviseringer (kald) 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.  

...

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)).

...

Udtræk af svartid og antal kald fordelt over testens løbetid vises i følgende grafer:


Image RemovedImage RemovedImage AddedImage Added

Data serier i grafen er:

  • DurationAverage (rød): den gennemsnitlige svartid (ms) for hvert minut
  • Iterationer (sort) er baseret på det tidstempel, som findes i loggen



Image RemovedImage RemovedImage AddedImage Added

Data serier i grafen er:

...

Udtræk omkring cpu fra denne log vises i de følgende grafer.

Image RemovedImage RemovedImage AddedImage Added

Data serier i grafen er:

...

Man kan se at cpuIdle og cpuNonKernel påvirkes som servicen presses mere. cpuIdle svinger oftere mod 0 i de sidste 2 iterationer. Det er dog vigtigt at bemærke at det kun er kortvarigt og cpyIdle cpuIdle går op igen.

Vurdering

Der er intet negativt at bemærke omkring cpu forbruget. 

...

Udtræk omkring hukommelse og garbage collection fra denne log vises i de følgende grafer.

Image RemovedImage RemovedImage AddedImage Added

Data serier i grafen er:

...

Udtræk omkring hukommelse, cpu netværkstrafik vises i følgende grafer.

Hukommelse:

Image RemovedImage RemovedImage AddedImage Added

Data serier i grafen er:

...

Cpu og hukommelse procent:

Image RemovedImage RemovedImage AddedImage Added

Data serier i grafen er:

...

Servicen viser et svagt stigende forbrug af hukommelse, men som skrevet for forrige graf anses det ikke som et problem. Den envendte cpu er stigende som servicen bliver presset. 


Netværk:

Image RemovedImage RemovedImage AddedImage Added

Data serier i grafen er:

  • netIn (rød): den mængde data som er modtaget af containeren over netværket
  • netOut (blå): den mænde mængde data som er sendt ud af containeren over netværket

TBDDe 2 grafer for ind- og udsendt data følges ad, hvilket er forventeligt; indkomne kald skaber trafik til kafka og igen retur til  kalder.

Vurdering

Intet at bemærke.

...

De følgende grafer er lavet på baggrund af vmstat data på kafka serveren.

Image RemovedImage RemovedImage RemovedImage AddedImage AddedImage Added

Data serier i grafen er:

...

Der er et meget svagt fald i Cpu Idle som testen skrider frem. Men den ligger generelt højt, så der er masser af cpu tid til rådighed.


Image RemovedImage RemovedImage RemovedImage AddedImage AddedImage Added

Data serier i grafen er:

...

Der er intet at bemærke som kan påvirke nas servicens performance i negativ retning. 

Konklusion

Pull Point

Scope

Performance testen består af en række kald til læsning af pull points.

Testen involverer følgende komponenter

  • NAS 2 Pull Point service version 2.0.6
  • NAS 2 Notification Broker service version 2.0.6 (baggrundsbelastning)
  • NSP kafka
  • Gallera MariaDB cluster
  • NSP standard performance test framework version 2.0.10

Performance krav

Performancekravene er som følger:

  1. Forudsætninger:
    1. Baggrundsdata:
      1. 1 topic
      2. 1.000 pullpoints på dette topic (20 af disse bruges aktivt under testen)
      3. Hver pullpoint har en unik idliste med hver 3000 id'er
      4. Der behøver ikke være beskeder på tipic inden testen starter
    2. Baggrundsbelastning
      1. Notifikation broker skal lave 40 adviseringer per sekund fordelt ligeligt på 20 udvalgte pullpoints
      2. Dvs. 2 adviseringer per pullpoint per sekund
    3. Test: 1 kald til getMessage på hver af de 20 udvalgte pullpoints hver 10. sekund. Dvs. 2 kald per sekund
  2. Krav:
    1. Gennemsnitlig svartid skal være under 5.000 millisekunder
    2. 95 % skal være under 10.000 millisekunder
    3. 99 % skal være under 20.000 millisekunder

Kommentarer til forudsætninger og krav

  1. Forudsætninger
    1. De omtalte baggrundsdata er til stede i form af et database script, der er indlæst inden opstart af test
    2. Baggrundsbelastningen er til stede i form at et baggrundsjob der skriver til Notification broker
    3. Som for notification broker testen anvendes NSP standard framework, hvor et throughput på 2 kald per sekund kan vurderes
  2. Krav til svartider vil blive vurderet med udgangspunkt i test resultaterne.

Afvikling

Performance testen er afviklet på følgende måde

Efter at have analyseres data fra performance testen kan følgende trækkes frem:

  • Svartid per kald til servicen: 9 ms for 2 nodes og 5 tråde, og med et throughput på 399 kald per sekund
    Kravet er, at et kald skal tage mindre end 250 ms med 10 adviseringer hver sekund.
    Dette opfyldes så rigeligt, endda under øget belastning med flere nodes og tråde.
    Der er kald, som tager mere end 500 ms, men det er så få, at procentvis er det 0 %.

  • Cpu status: cpu forbruget stiger lidt over test perioden, som servicen presses mere.Dog kun kortvarigt.

  • io på netværk: todo

  • Hukommelses forbrug: servicen håndterer brug af hukommelse fint

  • Garbage collection: servicen kører jævnligt garbage collection og dermed stiger hukommelses forbruget ikke over tid. Dette er et tegn på, at vi ikke har memory leaks.

  • Kafka: Hverken disk skriv/læs eller cpu forbrug giver anledning til bekymring for om kafka serverne påvirker servicens performance negativt

Analysen af performance test data for notification broker har ikke givet anledning til bekymring eller identificering af flaskehalse.




Pull Point

Scope

Performance testen består af en række kald til læsning af pull points.

Testen involverer følgende komponenter

  • NAS 2 Pull Point service version 2.0.6
  • NAS 2 Notification Broker service version 2.0.6 (baggrundsbelastning)
  • NSP kafka
  • Gallera MariaDB cluster
  • NSP standard performance test framework version 2.0.10

Performance krav

Performancekravene er som følger:

  1. Forudsætninger:
    1. Baggrundsdata:
      1. 1 topic
      2. 1.000 pullpoints på dette topic (20 af disse bruges aktivt under testen)
      3. Hver pullpoint har en unik idliste med hver 3000 id'er
      4. Der behøver ikke være beskeder på tipic inden testen starter
    2. Baggrundsbelastning
      1. Notifikation broker skal lave 40 adviseringer per sekund fordelt ligeligt på 20 udvalgte pullpoints
      2. Dvs. 2 adviseringer per pullpoint per sekund
    3. Test: 1 kald til getMessage på hver af de 20 udvalgte pullpoints hver 10. sekund. Dvs. 2 kald per sekund
  2. Krav:
    1. Gennemsnitlig svartid skal være under 5.000 millisekunder
    2. 95 % skal være under 10.000 millisekunder
    3. 99 % skal være under 20.000 millisekunder

Kommentarer til forudsætninger og krav

  1. Forudsætninger
    1. De omtalte baggrundsdata er til stede i form af et database script, der er indlæst inden opstart af test
    2. Baggrundsbelastningen er til stede i form at et baggrundsjob der skriver til Notification broker
    3. Som for notification broker testen anvendes NSP standard framework, hvor et throughput på 2 kald per sekund kan vurderes
  2. Krav til svartider vil blive vurderet med udgangspunkt i test resultaterne.

Afvikling

Performance testen er afviklet på følgende måde

  • Testen er kørt på et test system opsat at Netic
  • Testen er lavet i standard
  • Testen er kørt på et test system opsat at Netic
  • Testen er lavet i standard NSP performance frameworket (v.2.0.10), 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 pptest900, og den  kører 15 minutter per iteration.
  • System under test er kørt på på 2 docker containere
  • Den anvendte kafka har kørt på 3 docker containere

...

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)).

...

Følgende tabel viser antal af pull point fordelt per iteration, hvor de er ligeligt fordelt med en meget lille afvigelse.

Pull pointiteration 1iteration 2iteration 3iteration 4
pullPoint00011789179017891790
pullPoint00021789179017891790
pullPoint00031789179017891790
pullPoint00041789179017891790
pullPoint00051789179017891790
pullPoint00061789178817891790
pullPoint00071789179017881790
pullPoint00081789179017881790
pullPoint00091789179017881790
pullPoint00101788179017881790
pullPoint00111788179017881790
pullPoint00121788179017881790
pullPoint00131788179017881790
pullPoint00141788178917881790
pullPoint00151788178917881790
pullPoint00161788178717881789
pullPoint00171788178917881790
pullPoint00181788178517881789
pullPoint00191788178917881789
pullPoint00201788178917881789
Total35769357853576635796

...

Udtræk omkring hukommelse, cpu netværkstrafik vises i følgende grafer.

Hukommelse:

Image ModifiedImage Modified

Data serier i grafen er:

...

Cpu og hukommelse procent:

Image ModifiedImage Modified

Data serier i grafen er:

...

  • netIn (rød): den mængde data som er modtaget af containeren over netværket
  • netOut (blå): den mænde mængde data som er sendt ud af containeren over netværket

TBD

...

De 2 grafer for ind- og udsendt data følges ad, hvilket er forventeligt; indkomne kald skaber trafik til database og kafka og igen retur til  kalder. netIn stiger mest. Dette kan måske skyldes kald til pullpoint, der ikke returner noget svar. Det indkomne kald fylder forholdsvis meget pga. security headeren og svarene er ret små med eller uden data.

Kafka statistik

De følgende grafer er følgende grafer er lavet på baggrund af vmstat data på kafka serveren.

...

Der er intet at bemærke som kan påvirke nas servicens performance i negativ retning.

Konklusion

Efter at have analyseres data fra performance testen kan følgende trækkes frem:

  • Svartid per kald til servicen: 150 ms for 2 nodes og 5 tråde, og med et throughput på 53 kald per sekund
    Kravet er, at et kald

...

  • gennemsnitlig må tage mindre end 5.000 ms med 1 kald på 20 pullpoints hvert 10. sekund. Dvs 2 per sekund. 
    Dette opfyldes så rigeligt, endda under øget belastning med flere nodes og tråde.

...

  • Ingen af kald tager mere end 10.000 ms.

  • Cpu status: cpu forbruget konstant over test perioden. Det svinger inden for et interval og rammer

...

  • kun ganske kort loftet.

  • io på netværk:

...

  • todo

  • Hukommelses forbrug:

...

  • servicen håndterer brug af hukommelse fint

  • Garbage collection:

...

  • servicen kører jævnligt garbage collection og dermed stiger hukommelses forbruget ikke over tid. Dette er et tegn på, at vi ikke har memory leaks.

Derudover kan nævnes, at de 3 kald der gik galt under testen og returnerede http 500, fejlede pga. manglende svar fra en af de 3 MSB service kald: Service Unavailable.

...

  1. Baggrundsbelastning
    1. Notifikation broker skal lave 40 adviseringer per sekund fordelt ligeligt på 20 udvalgte pullpoints
    2. Dvs. 2 adviseringer per pullpoint per sekund
  2. Test: 1 kald til getMessage på hver af de 20 udvalgte pullpoints hver 10. sekund. Dvs. 2 kald per sekund

  • Kafka: Hverken disk skriv/læs eller cpu forbrug giver anledning til bekymring for om kafka serverne påvirker servicens performance negativt


Analysen af performance test data for pull point har ikke givet anledning til bekymring eller identificering af flaskehalse.

...