Auswahl einer Capability von ArcGIS Enterprise zum Benchmarking
Als grundlegendes Softwaresystem für GIS erfüllt ArcGIS Enterprise viele Aufgaben wie Kartenerstellung und Visualisierung, Analysen. Aus diesem breiten Spektrum an Fähigkeiten und Funktionen gibt es keinen einzelnen Test, der alle seine Möglichkeiten repräsentieren kann.
Wenn jedoch eine Funktion als Benchmark für das Testen einer ArcGIS Enterprise-Bereitstellung verwendet werden sollte, lässt sich ein überzeugendes Argument für die Exportfunktion des Kartendienstes machen. Der Export der Karte kann einfach und programmatisch in einem Apache JMeter Testplan aufgerufen werden, indem die räumlichen Ausdehnungen der Anfragen aus CSV-Datendateien über mehrere Kartenmaßstäbe variiert werden. Dies entspricht genau einer Anfrage pro Kartenmaßstabstransaktion, was dazu beiträgt, den Test nicht kompliziert und schwer wartbar zu machen. In Verbindung mit der Tatsache, dass die Exportfunktion seit Version 9.3 verfügbar ist, ergibt sich eine bewährte und zuverlässige Operation zum Benchmarking.
Was ist ein Benchmark eines Kartendienstes?
GIS-Tester und Administratoren sind oft damit beauftragt, die Unterschiede im Durchsatz zwischen zwei Systemen oder demselben System nach einer Form von Umweltänderung zu verstehen. In solchen Szenarien ist ein Benchmark der Prozess der Durchführung eines Lasttests, der als Standard dient, mit dem mehrere Dinge miteinander verglichen werden können.
Im Hinblick auf GIS wäre dieser Lasttest ein Apache JMeter Testplan, der einen Stufenlasttest gegen einen ArcGIS Enterprise-Kartendienst ausführt, um die höchste Durchsatzrate (Transaktionen/Sekunde oder Anfragen/Sekunde) zu verstehen, die aus der Bereitstellung bei einem bestimmten Zustand oder einer bestimmten Konfiguration erreicht werden kann. Diese Rate ist auch als Spitzen-Durchsatz bekannt. Beim Spitzen-Durchsatz ist es auch entscheidend, die Leistung (Transaktions- oder Antwortzeit der Anfrage) zu messen.<\/SPAN>
Benchmark-Datensatz
Jeder Datensatz kann für einen Benchmark verwendet werden, solange er konstant gehalten wird und keine Änderungen wie Hinzufügen, Aktualisieren, Löschen von Feature-Classes oder Versionen vorgenommen werden. Diese Konsistenz hilft dabei, einen verlässlichen "Standard" zu schaffen, da es sich um ein unbewegliches Ziel handelt. Die Testdaten können privat (z.B. proprietär) oder gemeinfrei sein.<\/SPAN>
<\/SPAN>
Was sind Public Domain Daten?
Im Allgemeinen sind Public Domain Daten Raster- oder Vektor-Datensätze, die kostenlos heruntergeladen und verwendet werden können. Es gibt viele Public Domain Datensätze (und möglicherweise unterschiedliche Lizenzen, die sie definieren). Die in diesem Artikel verwendeten Daten sind Made with Natural Earth und werden unter der Creative Commons (CC0)-Lizenz bereitgestellt.<\/P>
<\/H2>Warum Public Domain Daten verwenden?
Eines der Merkmale eines guten Benchmarks ist es, einen Test so zu konstruieren, dass andere denselben Test wiederholen können. Public Domain Daten sind in dieser Hinsicht eine gute Wahl, da sie einen Teststandard fördern und eine verlässliche Messlatte für Leistung und Skalierbarkeit bieten.<\/SPAN>
SampleWorldCities vs Natural Earth
Während die Einbeziehung von SampleWorldCities durch die Installation von ArcGIS Server den Datensatz allgegenwärtig macht und gut für Testbeispiele und Schritt-für-Schritt-Anleitungen geeignet ist, macht seine extrem kleine Größe ihn nicht ideal für das Benchmarking eines Kartendienstes.<\/P>
Die Natural Earth Datensätze hingegen bieten einige anständige Kartendetails (bei kleineren Maßstäben), die die ganze Welt abdecken. Außerdem kann dies mit einem leicht handhabbaren Speicherplatzbedarf erreicht werden, was es praktischer macht, sie zu teilen, herunterzuladen und zu verwenden.<\/P>
Der Benchmark Natural Earth Datensatz
- Laden Sie den Benchmark-Datensatz hier herunter
- Die Daten sind ein Teil des Natural_Earth_quick_start.zip und enthalten ein modifiziertes MXD für ArcMap 10.8.1 und ein ArcGIS Pro 2.8 Projekt.
- Beide können verwendet werden, um einen Kartendienst in ArcGIS Enterprise zu veröffentlichen.<\/SPAN>
<\/UL>
<\/UL>
- Der Natural Earth Teil-Datensatz sollte beim Öffnen in ArcGIS Pro (oder ArcMap) ähnlich aussehen wie folgt<\/SPAN>
<\/UL><\/SPAN>BereitstellungsarchitekturDie Architektur ist ein wichtiger Detailaspekt eines Benchmarks. Die folgenden Komponenten der Benchmark-Architektur haben alle Einfluss auf den Test: - Existiert ein Web Adaptor?
- Wurde eine Authentifizierung verwendet oder wurde der Dienst für alle verfügbar gemacht?
- Portal for ArcGIS Authentifizierung
- ArcGIS Server Token Authentifizierung
- Für alle verfügbar
- Wie viele Maschinen waren Teil des ArcGIS Site?
- Prozessordetails
- Prozessormodell und Architektur
- Anzahl der CPU-Kerne für jeden Server (einschließlich des Testclient-Arbeitsplatzes)
- Physisch, virtuell oder Cloud
- Details zum physischen Speicher
- Gesamtsystemspeichergröße
- Netzwerkgeschwindigkeit
- ArcGIS Enterprise Version
- Betriebssystemversion
Hinweis: Es wird empfohlen, die Details zur Bereitstellungsarchitektur zu notieren. Das Speichern dieser Informationen zusammen mit den Testergebnissen kann helfen, dem Analyseergebnis oder den Schlussfolgerungen den richtigen Kontext und Bedeutung zu geben. Die in diesem Benchmark-Test aufgeführten Ergebnisse wurden gegen folgende Umgebungsarchitektur ausgeführt:<\/P>- ArcGIS Server (10.9 Final)
- Dell PowerEdge R640
- Windows Server 2019
- 10G Netzwerk
- ArcGIS Web Adaptor (10.9 Final)
- Dell PowerEdge R440
- SPECint_base2006 </ LI >< LI >HyperThreading deaktiviert </ LI >< LI >64GB RAM </ LI ></ UL ></ LI >< LI >Windows Server 2019 </ LI >< LI >10G Netzwerk </ LI ></ UL ></ LI ></ UL >< UL >< LI >Test Client </ LI >< UL >< LI >Apache JMeter 5.4.1 </ LI >< LI >Dell PowerEdge R640 </ LI >< A href = "https://www.spec.org/cpu2006/results/res2017q3/cpu2006-20170807-48048.html " target = "_self " rel = "nofollow noopener noreferrer ">SPECint_rate_base2006 </ A > < UL >< LI >6 virtuelle CPUs </ LI >< LI >16GB RAM </ LI ></ UL ></ LI >< LI >Windows Server 2019 </ LI >< LI >10G Netzwerk </ LI ></ UL ></ LI ></ UL >< H2 id = "toc-hId--525789242 " >< SPAN >Datentyp und Standort der Datenquelle< / SPAN ></ H2 >< P >< SPAN >Die Verwendung entweder einer File-Geodatabase oder einer Enterprise-Geodatabase zur Speicherung von Daten für den Benchmark-Test ist in Ordnung. Unabhängig davon, welche verwendet wird, sind die Details der Datenquelle eine wichtige Eigenschaft der Umgebung, die notiert werden sollte.< / SPAN ></ P >< P >< SPAN >< FONT color = "#FF0000 " >< STRONG >Hinweis: Es wird empfohlen, den Typ der Datenquelle zu notieren. Das Speichern dieser Informationen zusammen mit den Testergebnissen kann helfen, dem Analyseergebnis oder den Schlussfolgerungen den richtigen Kontext und Bedeutung zu geben. < / STRONG ></ FONT ></ SPAN ></ P >< P >< SPAN >Was den Standort betrifft, könnte es notwendig sein, eine Remote-Datei-Geodatabase anstatt< / EM > einer lokalen Datei-Geodatabase zu verwenden wenn die Bereitstellung aus mehreren Servern besteht, die zusammen die ArcGIS Enterprise Site bilden. In beiden Fällen, remote oder lokal, ist der Speicherort der Datenquelle ebenfalls ein wichtiges Detail der Testumgebung, das notiert werden sollte.<\/SPAN><\/P>Hinweis: Es wird empfohlen, den Speicherort der Datenquelle zu notieren. Das Speichern dieser Information zusammen mit den Testergebnissen kann helfen, dem Analyse- oder den Schlussfolgerungen den richtigen Kontext und die richtige Bedeutung zu geben.<\/STRONG><\/FONT><\/P>Diensttyp und Anzahl der Instanzen<\/FONT><\/H2>Für die am weitesten verbreiteten ArcGIS-Kartendienste in einer Site wird empfohlen, die Ressource als Dedicated-Instanz statt Shared zu veröffentlichen. Obwohl beide Typen skalieren können, um die verfügbare Hardware vollständig zu nutzen, verfügt eine Dedicated-Service-Instanz über Ressourcen im Hintergrund, die ihr gewidmet sind und sie somit zur idealen Wahl für einen Benchmark-Test machen.<\/FONT><\/P>Für vorhersehbare Leistung wird empfohlen, die minimale und maximale Anzahl von Instanzen für den Dedicate-Instanztyp auf die Anzahl der CPU-Kerne der ArcGIS Server-Maschine einzustellen.<\/FONT><\/P>Hinweis: Es wird empfohlen, den Diensttyp und die Anzahl der Instanzen zu notieren. Das Speichern dieser Information zusammen mit den Testergebnissen kann helfen, dem Analyse- oder den Schlussfolgerungen den richtigen Kontext und die richtige Bedeutung zu geben.<\/STRONG><\/FONT><\/P>Sind die Anforderungsoptionen in einem Benchmark-Test wichtig?<\/H2>Absolut! Die Verwendung eines gemeinsamen Datensatzes und der Exportkartenfunktion reicht nicht aus, um einen verlässlichen Benchmark zu erstellen. Der Exportvorgang ist äußerst vielseitig, aber durch diese Flexibilität kann ein Bild durch verschiedene Eingabeoptionen erzeugt werden.<\/P>Ein Lasttest, der kontinuierlich Anfragen an den Kartendienst sendet, ist wichtig für die Erstellung eines zuverlässigen Benchmarks. Kann der Test eine BMP-Bildformat-Anfrage anstelle von PNG stellen oder Daten in einer anderen räumlichen Referenz als der Standard 4326 anfordern? Ja, aber das Ändern solcher Optionen kann die Leistung und Skalierbarkeit des Tests beeinflussen, daher wird empfohlen, diese Testplan-Einstellungen unverändert zu lassen.<\/P>Der Map Service Benchmark Testplan <\/H1>Um den Apache JMeter Testplan zu diesem Artikel herunterzuladen, siehe: <\/SPAN>naturalearth1.zip<\/A> <\/STRONG>
- Dieser Testplan basiert größtenteils auf dem SampleWorldCities-Testprojekt aus
einem früheren Artikel<\/A><\/LI><\/UL><\/LI><\/UL>- Das Herunterladen und Öffnen des Testplans in Apache JMeter sollte ähnlich wie folgt aussehen:
Die Thread Group Konfiguration<\/H2>Die Thread Group definiert die schrittweise Lastcharakteristik des Tests und spielt eine wichtige Rolle. Für einen Export Map hat die maximale Anzahl von Threads für den Test eine enge Beziehung zur maximalen Anzahl der CPU-Kerne des ArcGIS Servers (und ähnlich zur maximalen Anzahl von Service-Instanzen). Die Konfiguration der Testthreads über die Anzahl der Kerne hinaus hilft sicherzustellen, dass genügend Druck ausgeübt wird, um die CPU-Ressourcen des Servers vollständig zu nutzen. Ab dort sollte ein Spitzen-Durchsatz beobachtet werden, was ein primäres Ziel eines Benchmark-Tests ist.<\/P>Hinweis: Nicht alle getesteten Datensätze zeigen möglicherweise eine vollständige Auslastung der CPU des ArcGIS Server-Tiers durch den jeweiligen Dienst. In solchen Fällen sind zusätzliche Fehlerbehebungen erforderlich, um zu verstehen, wo der Engpass liegt, der die Skalierbarkeit des jeweiligen Workflows begrenzt.<\/STRONG><\/FONT><\/P>Als Faustregel gilt: Konfigurieren Sie die maximale schrittweise Last 25 % bis 60 % höher als die Anzahl der Server-CPU-KerneWie unten gezeigt ist der Testplan so konfiguriert, dass er 1 Stunde läuft und eine maximale schrittweise Last von 40 gleichzeitigen Testthreads erreichtDies würde den Benchmark bei 1 Testthread starten und alle 90 Sekunden einen weiteren Thread hinzufügen<\/LI>Dieser Benchmark wurde entwickelt, um eine ArcGIS Server-Bereitstellung mit 24 physischen CPU-Kernen zu testen <\/LI>Passen Sie entsprechend an; nicht jeder ArcGIS Server läuft auf 24 physischen Kernen und die maximalen Schrittwerte könnten für Ihre Bereitstellung zu hoch sein<\/LI><\/UL><\/LI><\/UL><\/LI><\/UL>
<\/span><\/P>Hinweis: Es wird empfohlen, Details zur Schrittbelastungskonfiguration zu notieren. Das Speichern dieser Informationen zusammen mit den Testergebnissen kann helfen, dem Analyse- oder den Schlussfolgerungen den richtigen Kontext und die richtige Bedeutung zu geben.<\/STRONG><\/FONT><\/P>Benchmark-Testausführung<\/H1>Der Benchmark sollte auf dieselbe Weise wie ein typischer JMeter-Testplan ausgeführt werden.<\/P>Siehe das runMe.bat-Skript im naturalearth1.zip-Projekt als Beispiel dafür, wie ein vom Apache JMeter-Team empfohlener Test ausgeführt wird.<\/P>Hinweis: Es wird stets empfohlen, Startzeitpunkt und Dauer des Lasttests mit dem zuständigen Personal abzustimmen. Dies gewährleistet minimale Auswirkungen auf Benutzer und andere Kollegen, die möglicherweise ebenfalls die ArcGIS Enterprise Site nutzen müssen. Außerdem hilft dies dabei, Systemrauschen<\EM> durch andere Aktivitäten und Nutzung zu vermeiden, das die Testergebnisse "verunreinigen" könnte.<\STRONG>
- Das System erreichte einen maximalen Durchsatz von etwa 80 transactions/sec (oder 80 requests/sec)
Tatsächliche Leistungskurve- Aus dem Bericht:
- Unter Charts-->Response Times findet man das Diagramm Time Vs Threads, in dem die Anforderungsleistung aus dem Test dargestellt wird
- Alle Elemente außer "/pvtserver/rest/services/NaturalEarth/MapServer/export" sind ausgefiltert (durch Klicken auf sie in der Legende)
- Da der Test so aufgebaut wurde, dass jede Transaktion nur eine Anfrage enthält, repräsentiert die "export request" auch die durchschnittliche Transaktionsleistung
- Zum Zeitpunkt des maximalen Durchsatzes liefert das System eine Transaktionsleistung von etwa 314 ms oder 0,3 Sekunden
Hinweis: Für Lasttests mit Transaktionen, die mehr als eine Anfrage enthalten, muss ein anderer Analyseansatz gewählt werdenVergleich der ErgebnisseNachdem Sie den Test Ihres Systems mit den bereitgestellten Daten und dem Testplan abgeschlossen haben, können Sie die Ergebnisse mit denen in diesem Artikel aufgeführten vergleichen. Dies kann eine ungefähre Messlatte zum Vergleich zweier Systeme bieten.- Um den in diesem Artikel verwendeten Apache JMeter Testplan herunterzuladen, siehe: naturalearth1.zip
- Um den in diesem Artikel verwendeten Natural Earth-Datenausschnitt herunterzuladen, siehe: Natural_Earth_Test_Data
Apache JMeter veröffentlicht unter der Apache License 2.0. Apache, Apache JMeter, JMeter, das Apache-Feder-Logo und das Apache JMeter-Logo sind Marken der Apache Software Foundation.