Unser Lasttest: Wie gut skaliert ArcGIS Online?
Ein gutes cloudbasiertes Software-as-a-Service (SaaS)-System sollte eine automatische Skalierung von Ressourcen bei steigenden Benutzerzahlen durchführen. Erhöht auch ArcGIS Online seine Leistungsfähigkeit bei einer steigenden Anzahl von gleichzeitigen Anfragen? Um diese Frage zu beantworten, haben wir das System einem Lasttest unterzogen und dabei die Verarbeitungsgeschwindigkeit von räumlichen Anfragen gemessen. In diesem Blogpost wollen wir euch die Ergebnisse präsentieren.
Unser Szenario: Liegt der Punkt in der Fläche?
Wer auf unserem Entwicklerforum in Dresden zum Thema Geoprocessing im Web war, erinnert sich vielleicht: Eine typische Fragestellung für GIS ist, ob ein Punkt beziehungsweise eine Adresse innerhalb eines bestimmten Gebiets liegt. Wir haben zur Beantwortung dieser Frage einen Feature-Dienst mit 2,3 Millionen unregelmäßigen Polygonen und einer Dateigröße von mehr als 1 GB benutzt. Für diesen Feature-Dienst haben wir zufällige Punktabfragen gestartet und dabei die Berechnungszeit gemessen. Als Technologie diente uns die ArcGIS REST API.
Als Testumgebung für die Generierung von zufälligen Koordinatenpaaren haben wir JMeter benutzt. JMeter ist ein Apache-Projekt und ein nützliches Werkzeug für Lasttests, beispielsweise von Webdiensten. Mit JMeter können die Performance und die Skalierbarkeit von Services in Abfragen pro Minute gemessen werden. Dank benutzerdefinierter Variablen lassen sich die räumlichen Abfragen über die REST API mit JMeter automatisieren.
Wie viele Anfragen können gleichzeitig gestellt werden?
Grundsätzlich sind die Berechnungszeiten stark von der Hardware und der Kapazität des Netzwerkes abhängig. Unsere Testumgebung bestand netzwerkseitig aus dem Firmennetz LAN mit T1-Leitung. Als Hardware stand uns ein Intel(R) Core(TM) i7-3520M mit einer CPU von 2 x 2.90 GHz bei 8 GB RAM zur Verfügung.
Wir haben gemessen, inwiefern die verarbeiteten Anfragen pro Sekunde von der Nutzeranzahl abhängen. Dazu haben wir 20.000 Abfragen gestellt und dabei die Anzahl von Nutzern zwischen 1 und 15 variiert. Das Ergebnis ist im ersten Diagramm unten zu sehen: Es besteht ein linearer positiver Zusammenhang zwischen den Nutzern und den verarbeiteten Anfragen pro Sekunde. Bei nur einem Nutzer liegt der Wert bei 5 verarbeiteten Anfragen pro Sekunde, während bei 15 Nutzern schon 90 Anfragen pro Sekunde verarbeitet werden. Der Zusammenhang ist nicht perfekt linear, da die server- und clientseitigen Kapazitäten schwanken. Weitere Tests wären an dieser Stelle notwendig, um die genaue Ursache festzustellen.
Wie lange dauern die Berechnungen insgesamt?
Den Zusammenhang zwischen Gesamtrechenzeit und Nutzerzahlen zeigt unser zweites Diagramm: Während die Gesamtberechnungszeit für alle 20.000 Anfragen 85 Minuten beträgt, liegt diese Gesamtrechenzeit bei 15 Nutzern und 90 Anfragen pro Sekunde bei nur noch vier Minuten.
Insgesamt führt eine Verdopplung der Nutzer jeweils zu einer Halbierung der Rechenzeit für 20.000 Anfragen. Der Grund hierfür ist, dass mit einer steigenden Anzahl von simultan gestellten Anfragen das System seine Ressourcen steigert. In anderen Worten heißt das, das System skaliert.
Dadurch ist ArcGIS Online gut für diese Art von räumlichen Analysen geeignet – nicht nur dank der neuen Verfügbarkeit von Ressourcen und der linearen Skalierung, sondern auch dank der robusten und benutzerfreundlichen Oberfläche. Wie setzt ihr diese Eigenschaften für eure Fragestellungen ein? Wir sind gespannt auf euer Feedback.
– Christiane Radies, Technischer Vertrieb
– Jörg Moosmeier, Produktmanager Plattform
– Jan Wilkening, Consultant Bildung und Forschung