Kommunernes gateway

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.

Antagelser og forbehold

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.

Testen

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.   

Afvikling

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:

IdSøjlerFordelingGennemløb

20131118_144601

2morning20
20131120_1444542midday20
20131120_1704311midday100
20131122_1301172midday100
20131126_1344511morning100
20131126_1525182morning100

Gennemløb beskrives under afsnitet, Fordeling

Testplan

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.

Fordeling

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. 

Målingerne

Throughput

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.

IdThroughputTrådeNoder
20131118_14460169.13142
20131120_144454127.64142
20131120_170431113.3272
20131122_130117116.5572
20131126_134451

61.92

142
20131126_152518

59.12

142

Miljø

Konklusion

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.  

Forbedringer


Splunk søgninger

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