Het kiezen van een Capability van ArcGIS Enterprise om te benchmarken
Als het fundamentele softwaresysteem voor GIS, voert ArcGIS Enterprise veel taken uit zoals mapping en visualisatie, analytics. Vanuit dit brede scala aan capabilities en functies is er geen enkele test die al zijn mogelijkheden kan vertegenwoordigen.
Echter, als één functie zou worden gebruikt als benchmark voor het testen van een ArcGIS Enterprise-implementatie, kan een sterk argument worden gemaakt voor de map service exportfunctie. Export map kan gemakkelijk en programmatisch worden aangeroepen in een Apache JMeter Test Plan door de ruimtelijke extents van de verzoeken te variëren vanuit CSV-gegevensbestanden over verschillende kaartschalen. Dit vertaalt zich naar slechts één verzoek per kaart schaaltransactie wat helpt om de test eenvoudig en onderhoudbaar te houden. Gecombineerd met het feit dat de exportfunctie beschikbaar is sinds versie 9.3, maakt dit een bewezen en betrouwbare operatie om te benchmarken.
Wat is een Benchmark van een Map Service?
GIS-testers en beheerders krijgen vaak de taak om de verschillen in doorvoer tussen twee systemen of hetzelfde systeem na een vorm van omgevingswijziging te begrijpen. In dergelijke scenario's is een benchmark het proces van het uitvoeren van een load test die dient als standaard waarmee meerdere dingen met elkaar kunnen worden vergeleken.
Met betrekking tot GIS zou deze load test een Apache JMeter Test Plan zijn dat een step load test uitvoert tegen een ArcGIS Enterprise map service om het hoogste doorvoertarief (transacties/sec of verzoeken/sec) te begrijpen dat kan worden bereikt vanuit de implementatie gegeven een bepaalde staat of configuratie. Dit tarief staat ook bekend als de piekdoorvoer. Bij piekdoorvoer is het ook cruciaal om de prestaties (transactie- of verzoek-responstijd) te meten.
Benchmark Dataset
Elke dataset kan worden gebruikt voor een benchmark zolang deze constant wordt gehouden waarbij wijzigingen zoals toevoegingen, updates, verwijderingen en versies van feature classes niet worden aangebracht. Deze consistentie helpt bij het creëren van een betrouwbare "standaard" omdat het een niet-bewegend doelwit is. De testgegevens kunnen privé (bijv. propriëtair) of openbaar domein zijn.

Wat is Public Domain Data?
Over het algemeen zou public domain data elk raster- of vector dataset zijn dat gratis te downloaden en te gebruiken is. Er zijn veel public domain datasets beschikbaar (en mogelijk verschillende licenties die ze definiëren). De data die in dit artikel wordt gebruikt is Gemaakt met Natural Earth en beschikbaar gesteld via de Creative Commons (CC0)-licentie.

Waarom Public Domain Data gebruiken?
Een van de kenmerken die een goede benchmark maken, is het opzetten van een test zodat anderen dezelfde test kunnen herhalen die jij hebt gedaan. Public domain data is hierin een goede keuze omdat het een teststandaard bevordert en een betrouwbare meetlat biedt voor prestaties en schaalbaarheid.
SampleWorldCities vs Natural Earth
Hoewel de opname van SampleWorldCities in ArcGIS Server via de installatie helpt om de dataset alomtegenwoordig te maken en goed voor testvoorbeelden en walkthroughs, maakt de extreem kleine omvang het niet ideaal voor benchmarking van een map service.
De Natural Earth datasets bieden daarentegen redelijk wat kaartdetail (op kleinere schalen) die de hele wereld beslaan. Bovendien kan dit worden bereikt met een gemakkelijk hanteerbare schijfruimte, wat het praktischer maakt om te delen, downloaden en gebruiken.
De Benchmark Natural Earth Dataset
- Download hier de benchmark dataset
- De data is een subset van de Natural_Earth_quick_start.zip en bevat een aangepaste MXD voor ArcMap 10.8.1 en ArcGIS Pro 2.8 project.
- Beide kunnen worden gebruikt om een map service te publiceren naar ArcGIS Enterprise.
- De Natural Earth subset van data zou er ongeveer zo uit moeten zien wanneer geopend in ArcGIS Pro (of ArcMap)

Implementatie Architectuur
Architectuur is belangrijke detail van een benchmark. De volgende zijn allemaal belangrijke componenten van benchmark architectuur die invloed hebben op de test:
- Bestaat er een Web Adaptor?
- Was authenticatie betrokken of was de service beschikbaar voor iedereen
- Portal for ArcGIS authenticatie
- ArcGIS Server token authenticatie
- Beschikbaar voor iedereen
- Hoeveel machines namen deel aan de ArcGIS Site?
- Processor details
- Processor model en architectuur
- Aantal CPU cores voor elke server (inclusief het testclient werkstation)
- Fysiek, virtueel of cloud
- Details over fysiek geheugen
- Netwerksnelheid
- ArcGIS Enterprise versie
- Besturingssysteem versie
Opmerking: Het wordt aanbevolen om aantekeningen te maken van de implementatie architectuur details. Het opslaan van deze informatie samen met de testresultaten kan helpen om juiste context en betekenis te geven aan de analyse of conclusies.
De resultaten vermeld voor deze benchmarktest werden uitgevoerd tegen de volgende omgeving architectuur:
ArcGIS Server (10.9 Final)
- Dell PowerEdge R640
Windows Server 2019
10G netwerk
ArcGIS Web Adaptor (10.9 Final)
- Dell PowerEdge R440
Windows Server 2019
10G netwerk
- Test Client
- Apache JMeter 5.4.1
- Dell PowerEdge R640
SPECint_rate_base2006
- 6 virtuele CPU's
- 16GB RAM
- Windows Server 2019
- 10G netwerk
als de implementatie meerdere servers heeft die samen de ArcGIS Enterprise Site vormen. In beide gevallen, remote of lokaal, is de locatie van de gegevensbron ook een belangrijk detail van de testomgeving dat genoteerd moet worden.<\/SPAN><\/P>
Opmerking: Het wordt aanbevolen om de locatie van de gegevensbron te noteren. Het opslaan van deze informatie met de testresultaten kan helpen om de juiste context en betekenis aan de analyse of conclusies te geven.<\/STRONG><\/FONT><\/P>Servicetype en aantal instanties<\/FONT><\/H2>Voor de meest gebruikte ArcGIS-kaartservices in een Site wordt aanbevolen om de resource te publiceren als een Dedicated instantie in plaats van Shared. Hoewel beide typen kunnen schalen om de beschikbare hardware volledig te benutten, heeft een Dedicated service-instantie achter de schermen middelen die eraan zijn toegewezen, wat het een ideale keuze maakt voor een benchmarktest.<\/FONT><\/P>Voor voorspelbare prestaties wordt aanbevolen om het Minimum en Maximum aantal instanties voor het type Dedicated instantie gelijk te stellen aan het aantal CPU-kernen van de ArcGIS Server-machine.<\/FONT><\/P>Opmerking: Het wordt aanbevolen om het servicetype en het aantal instanties te noteren. Het opslaan van deze informatie met de testresultaten kan helpen om de juiste context en betekenis aan de analyse of conclusies te geven.<\/STRONG><\/FONT><\/P>Zijn de aanvraagopties in een Benchmark Test belangrijk?<\/H2>Absoluut! Het gebruik van een gemeenschappelijke dataset en de exportmapfunctie is niet voldoende om een betrouwbare benchmark vast te stellen. De exportbewerking is uiterst veelzijdig, maar door deze flexibiliteit kan een afbeelding worden gegenereerd via verschillende invoeropties.<\/P>Een loadtest die consequent verzoeken naar de kaartservice stuurt, is belangrijk voor het vaststellen van een betrouwbare benchmark. Kan de test een BMP-afbeeldingsformaat aanvragen in plaats van PNG of vragen om gegevens in een andere ruimtelijke referentie dan de standaard 4326? Ja, maar het wijzigen van dergelijke opties kan invloed hebben op de prestaties en schaalbaarheid van de test, dus het wordt aanbevolen om deze Test Plan-instellingen ongewijzigd te laten.<\/P>Het Map Service Benchmark Test Plan <\/H1>Om het Apache JMeter Test Plan te downloaden dat in dit artikel wordt gebruikt, zie: <\/SPAN>naturalearth1.zip<\/A> <\/STRONG>- Dit Test Plan is grotendeels gebaseerd op het SampleWorldCities-testproject uit
een eerder artikel<\/A><\/LI><\/UL><\/LI><\/UL>- Het downloaden en openen van het Test Plan in Apache JMeter zou er ongeveer als volgt uit moeten zien:
De Thread Group Configuratie<\/H2>De Thread Group definieert de stapbelastingkenmerken van de test en speelt een belangrijke rol. Voor een exportmap heeft het maximale aantal Threads voor de test een nauwe relatie met het maximale aantal ArcGIS Server CPU-kernen (en vergelijkbaar, het maximale aantal service-instanties). Het configureren van testthreads die het aantal kernen overschrijden helpt ervoor te zorgen dat er voldoende druk wordt uitgeoefend om de server-CPU-middelen volledig te benutten. Vanaf daar zou piekdoorvoer moeten worden waargenomen, wat een primair doel is van een benchmarktest.<\/P>Opmerking: Niet alle geteste datasets zullen respectievelijk laten zien dat de service volledig gebruikmaakt van de CPU van de ArcGIS Server-laag. In dergelijke gevallen is aanvullende probleemoplossing nodig om te begrijpen waar de bottleneck zit die de schaalbaarheid van de gegeven workflow beperkt.<\/STRONG><\/FONT><\/P>Als vuistregel configureer je de maximale stapbelasting 25% -- 60% hoger dan het aantal server-CPU-kernenZoals hieronder te zien is, is het Test Plan geconfigureerd om 1 uur te draaien en een maximale stapbelasting van 40 gelijktijdige testthreads te bereikenDit zou beginnen met 1 testthread en elke 90 seconden een extra thread toevoegen<\/LI>Deze benchmark is ontworpen om een ArcGIS Server-implementatie te testen die draait op 24 fysieke CPU-kernen <\/LI>Pas dit dienovereenkomstig aan, niet elke ArcGIS Server draait op 24 fysieke kernen en de maximale stapwaarden kunnen te hoog zijn voor uw implementatie<\/LI><\/UL><\/LI><\/UL><\/LI><\/UL>
<\/span><\/P>Opmerking: Het wordt aanbevolen om details over de stapbelastingconfiguratie te noteren. Het opslaan van deze informatie met de testresultaten kan helpen om juiste context en betekenis aan analyse of conclusies te geven.<\/STRONG><\/FONT><\/P>Uitvoering Benchmark Test<\/H1>De benchmark moet op dezelfde manier worden uitgevoerd als een typisch JMeter Test Plan.
Zie het runMe.bat-script dat bij het naturalearth1.zip-project is inbegrepen voor een voorbeeld hoe je een test uitvoert zoals aanbevolen door het Apache JMeter-team.
Opmerking: Het wordt altijd aanbevolen om het starttijdstip en duur van de loadtest af te stemmen met het juiste personeel. Dit zorgt voor minimale impact op gebruikers en andere collega's die mogelijk ook gebruik moeten maken van de ArcGIS Enterprise Site. Bovendien helpt dit voorkomen dat systeemruis door andere activiteiten en gebruik "vervuiling" veroorzaakt in de testresultaten.
Resultaten en Analyse<\ /H1 >< P > Zodra < span >de loadtest is voltooid , instrueert runME.bat Apache JMeter automatisch < span >om < span >een rapport < span >te genereren < span >om < span >te helpen < span >bij < span >de analyse < span >van < span >de resultaten . <\ / P >< P > Er kunnen hele artikelen en internetbronnen exclusief gewijd zijn aan het analyseren van componenten uit resultaten van loadtests . Dus , in belang van eenvoud , richten we ons op < STRONG >aanvraagdoorvoer (aanvragen / sec)<\ / STRONG > en < STRONG >aanvraagprestaties (seconden) <\ / STRONG > metriek uit het rapport . <\ / P >< P > De onderstaande diagrammen illustreren ideale trends van deze twee items in tijd tijdens de test . <\ / P >< H2 id = "toc-hId-1380701144">De Ideale Doorvoercurve<\ / H2 >< P >< span class = "lia-inline-image-display-wrapper lia-image-align-center" image-alt = "theoretical_throughput_curve.png" style = "width: 984px;" >< img src = "https://us.v-cdn.net/6038851/uploads/images/17248iF22584F5C377D6E1/theoretical_throughput_curve.png" role = "button" title = "theoretical_throughput_curve.png" alt = "theoretical_throughput_curve.png" \/ ><\ / span ><\ / P >< P > <\ / P >< P > Idealiter zal de doorvoercurve dezelfde vorm hebben als bovenstaande oranje lijn . Het punt waar deze curve piekt en begint af te vlakken geeft aan dat het systeem zijn hoogste doorvoerniveau heeft bereikt (door hardware- of softwarebottleneck) . Dit gebied op grafiek waar curve buigt wordt aangeduid als < EM >knie<\ / EM > en hier ligt waarde voor maximale doorvoer . <\ / P >< P > De blauwe lijn vertegenwoordigt toenemende stapbelasting tijdens test . <\ / P >< H2 id = "toc-hId--426753319">De Ideale Prestatiecurve<\ / H2 >< P >< span class = "lia-inline-image-display-wrapper lia-image-align-center" image-alt = "theoretical_performance_curve.png" style = "width: 983px;" >< img src = "https://us.v-cdn.net/6038851/uploads/images/17240i39DD4BF543301408/theoretical_performance_curve.png" role = "button" title = "theoretical_performance_curve.png" alt = "theoretical_performance_curve.png" \/ ><\ / span ><\ / P >< P > Idealiter zal responstijdcurve dezelfde vorm hebben als bovenstaande groene lijn . Deze wordt genomen op hetzelfde punt in test als maximale doorvoer . <\ / P >< P > De blauwe lijn vertegenwoordigt toenemende stapbelasting tijdens test . <\ / P >< H1 id = "toc-hId-1931676795">JMeter Rapport<\ / H1 >< P > Bijgevoegd bij naturalearth1.zip-project is Apache JMeter-rapport genaamd naturalearth1_run1 binnen map reports . <\ / P >< UL >< LI > Openen index.html toont meerdere grafieken en tabellen ter ondersteuning analyse <\ / LI ><\ / UL >< H1 id = "toc-hId-124222332">< img src = "https://us.v-cdn.net/6038851/uploads/images/17247iF369998FE40007C4/report_folder.png" role = "button" title = "report_folder.png" alt = "report_folder.png" \/ ><\ / span ><\ / H1 >< H2 id = "toc-hId--855987471"> <\ / SPAN>Werkelijke Doorvoercurve<\ / H2 >< UL >< LI >Uit rapport:<\ / SPAN >< UL class= "lia-list-style-type-circle">< LI >Onder Grafieken --> Doorvoer , staat Hits Per Second-grafiek waar aanvraagdoorvoer uit test geplot wordt<\ / SPAN >< BR />< UL class= "lia-list-style-type-square">< LI >Aangezien test zo is opgebouwd dat elke transactie slechts één aanvraag bevat , "hits per seconde" is gelijk aan zowel transactions/sec als requests/secHet systeem behaalde een maximale doorvoer van ongeveer 80 transactions/sec (of 80 requests/sec)
Werkelijke Prestatiecurve
- Uit het rapport:
- Onder Charts-->Response Times, is de Time Vs Threads grafiek te vinden waar de request-prestatie van de test wordt uitgezet
- Alle items behalve "/pvtserver/rest/services/NaturalEarth/MapServer/export" zijn eruit gefilterd (door erop te klikken in de legenda)
- Aangezien de test is opgebouwd met elke transaction die slechts één request bevat, vertegenwoordigt de "export request" ook de gemiddelde transaction-prestatie
- Op het punt van maximale doorvoer levert het systeem een transaction-prestatie van ongeveer 314ms of 0,3 seconden

Opmerking: Voor load tests met transactions die meer dan één request bevatten, moet een andere analysemethode worden gehanteerd
Resultaten Vergelijken
Nadat u de test van uw systeem hebt voltooid met de meegeleverde gegevens en Test Plan, kunt u de resultaten vergelijken met die vermeld in dit artikel. Dit kan een benaderende maatstaf bieden om twee systemen met elkaar te vergelijken.
- Om het Apache JMeter Test Plan te downloaden dat in dit artikel is gebruikt, zie: naturalearth1.zip
- Om de Natural Earth subset van gegevens te downloaden die in dit artikel is gebruikt, zie: Natural_Earth_Test_Data
Apache JMeter uitgebracht onder de Apache License 2.0. Apache, Apache JMeter, JMeter, de Apache veer en het Apache JMeter-logo zijn handelsmerken van de Apache Software Foundation.