Kommunernes Gateway er SOSI Gateway opsat med partitionering i et 4 søjle miljø, som kommunerne skal anvende på samme måde som regionerne anvender SOSI Gateway på dNSP. I den forbindelse er der foretaget målinger af Throughput (TP) på et staging miljø opsat af Netic. Målingerne er foretaget i løbet af november måned 2013 på SOSI-GW version 1.2.1.
SOSI Gateway udstiller et antal services til at få udstedt og cachet et id-kort samt en service til at kalde andre services gennem. Disse services bliver alle anvendt af performance testen.
Performancetesten afspejler ikke produktionlignende forhold, da disse pt. ikke er kendt. Derfor laves er der antagelser og der må ligeledes tages forbehold for disse i resultatet.
NameId
og dermed simulerer flere anvendere. Det giver en positiv påvirkning til STS'en, idet den cacher data baseret på CPR nummer og CVR nummer, og dermed kun skal slå disse op en gang. Dette vil dog også påvirke resultatet.Trifork, som er leverandør til SOSI-GW, har tidligere udført en tests, hvoraf der også fremkom et tal for TP. Denne tests har dog andre forudsætninger, og blev udført i 2008 på andet hardware.
Performance testen afvikles i flere tempi. Først køres med et antal tråde på et antal noder, og laves flere kørsler, hvor antallet af tråde og noder sættes op. Testen stopper, når den beregnede TP ikke længere bliver højere. Dette kan også ses på nogle af gaferne.
Performance testen består af en række JMeter testplaner, samt scripts, der afvikler den valgte performancetest inkrementelt indtil det endelige throughput er fundet. For hver iteration øges enten antallet af tråde eller antallet af noder indtil det målte throughput ikke længere vokser tilsvarende.
Følgende tests er blevet afviklet:
Id | Søjler | Fordeling | Gennemløb |
---|---|---|---|
20131118_144601 | 2 | morning | 20 |
20131120_144454 | 2 | midday | 20 |
20131120_170431 | 1 | midday | 100 |
20131122_130117 | 2 | midday | 100 |
20131126_134451 | 1 | morning | 100 |
20131126_152518 | 2 | morning | 100 |
Gennemløb beskrives under afsnitet, Fordeling.
Testplaner anvendt i denne performance test: gw
Testplanen gw
består af en del der lægger et id-kort i cachen og kalder proxy endpointet et antal gange samt en del der lægger et id-kort i cachen og tjekker status via metoden GetValidIdCard
. De to blokke afvikles i tilfældig orden for hvert gennemløb.
Fordelinger anvendt i denne performance test: morning
, midday.
Fordelingen morning
foretager 6 proxy kald, et enkelt status kald samt 7 signeringer af id-kort for hvert gennemløb. Hvert gennemløb gentages et antal gange.
Fordelingen midday
foretager 24 proxy kald, et enkelt status kald samt 7 signeringer af id-kort for hvert gennemløb. Hvert gennemløb gentages et antal gange.
Disse fordelinger er fremkommet vha. analyse af produktionslog gennem splunk. Der er forsøgt at finde fordelinger, der skulle svare til den "normale" brug af komponenten.
De kørsler af performance testen har givet de TP der kan ses i tabellen nedenunder. Uder over TP vises også hvor mange tråde og noder der skulle til for at opnå dette TP.
Id | Throughput | Tråde | Noder |
---|---|---|---|
20131118_144601 | 69.13 | 14 | 2 |
20131120_144454 | 127.64 | 14 | 2 |
20131120_170431 | 113.32 | 7 | 2 |
20131122_130117 | 116.55 | 7 | 2 |
20131126_134451 | 61.92 | 14 | 2 |
20131126_152518 | 59.12 | 14 | 2 |
Efter kørslen af de to første tests med 20 gentagelser, valgte vi at køre testene igen med 100 gentagelser, da det var sandsynligt at rampup påvirkede resultatet uforbeholdent meget.
Med de målinger der er gennemført, kan der nu konkluderes, at et 2 søjlesystem med fordelingen fra spidsbelastningsperioden i NSP (morning) kan håndtere ca 60 forespørgelser pr sekund. Det giver 216.000 forespørgelser i timen. Komponenten og miljøet vil maksimalt kunne håndtere dette, dog vil komponenten være i stand til at modtage flere og vente med at behandle disse. Denne kø-funktionalitet er indbygget i JBoss. Funktionalteten vil naturligvis give anledning til en længere svartid.
En måling fra torsdag den 14. nov 2013 i produktion viser at SOSI Gateway maksimalt modtager omkring 11.000 forespørgelser pr time. Den udvalgte dag har det samme antal forespørgelser som de andre hverdage i perioden 23/10-22/11, og giver derfor et repræsentativt billede.
Ifht. til en udrulning til 98 kommuner, betyder dette at hver kommune gennemsnitlig kun må have 1/5 så meget trafik som en region for at være under angivne TP. Her er stadig kun medregnet 2 søjler.
Heap:
index=nspstage host=cstag-kgw0* sourcetype="jmx" mbean_property_type="Memory" | eval usage=( (heapMax - heapUsed)/(1024*1024) ) | timechart avg(usage) by host
CPU:
index=nspstage sourcetype=vmstat host=cstag-kgw0* | multikv | timechart span=1m avg(eval(loadAvg1mi*100)) by host
Requests:
index=nspstage host=cstag-kgw0* sourcetype="json_auto_timestamp" path="/sosigw*" | timechart span=1m count by host