Tipps zur Performance-Optimierung für Geoverarbeitungs-Services

Die Clients erwarten eine schnelle Verarbeitung. Daher müssen Ihre Geoverarbeitungs-Services schnell und effizient sein. Da ArcGIS for Server mehrere Clients gleichzeitig versorgen kann, führen ineffiziente Services möglicherweise zur Überlastung des Servers. Je effizienter die Services sind, desto mehr Clients können mit denselben Computerressourcen versorgt werden.

Mit den folgenden Tipps und Verfahren lässt sich die Performance von Services steigern. Die Verfahren werden in einer bestimmten Reihenfolge dargestellt – die Verfahren, die die größte Performance-Steigerung ermöglichen, werden zuerst beschrieben. Mit den letzten Tipps lassen sich einige Zehntelsekunden an Ausführungszeit sparen. Dies kann für einige Tasks erforderlich sein.

Verwenden Sie Layer für Projektdaten

Wenn Sie das Geoverarbeitungswerkzeug zur Erstellung eines Ergebnisses ausführen, das veröffentlicht werden soll, sollten Sie das Werkzeug mithilfe von Layern als Eingabe anstatt Pfaden zu Datasets auf der Festplatte ausführen. Ein Layer verweist auf ein Dataset auf der Festplatte, und Layer cachen Eigenschaften des Datasets. Dies gilt insbesondere für Netzwerk-Dataset-Layer und Raster-Layer. Wenn statt des Pfads zum Dataset ein Layer verwendet wird, steigert dies die Performance, weil der Service nach dessen Start den Layer aus dem Dataset erstellt, grundlegende Eigenschaften des Datasets zwischenspeichert und das Dataset geöffnet lässt. Wenn der Service ausgeführt wird, stehen die Eigenschaften des Datasets sofort zur Verfügung, und das Dataset ist geöffnet und steht bereit – eine Performance-Steigerung.

So verwenden beispielsweise der Sichtfeldservice auf dem Esri SampleServer und die Erweiterung "ArcGIS Network Analyst", Beispiele, die Reisezeitpolygone erstellen, allesamt Layer. Je nach Größe des Datasets können dadurch pro Serviceausführung mehr als ein oder zwei Sekunden eingespart werden.

Verwenden Sie auf ArcGIS for Server lokal gespeicherte Daten

Die von Geoverarbeitungs-Services benötigten Projektdaten sollten lokal auf ArcGIS for Server gespeichert sein. Daten, die freigegeben werden oder auf die über eine Netzwerkfreigabe (UNC) zugegriffen wird, sind langsamer als wenn sie auf dem gleichen Rechner verfügbar wären. Die Performance-Werte variieren stark, es kann jedoch durchaus vorkommen, dass das Lesen und Schreiben von Daten in einem LAN doppelt so viel Zeit wie das Lesen von der lokalen Festplatte erfordert.

Schreiben Sie Zwischendaten in den Arbeitsspeicher

Sie können Zwischendaten (Scratch-Daten) in den Arbeitsspeicher schreiben. Dies ist schneller als das Schreiben von Daten auf die Festplatte.

HinweisHinweis:

Sie können auch Ausgabedaten in den Arbeitsspeicher schreiben, solange Sie keinen Karten-Service des Ergebnisses verwenden.

Ab Version 10.1 steht die Möglichkeit zur Verfügung, Raster in den Arbeitsspeicher zu schreiben.

Weitere Informationen zum Schreiben von Daten in den Speicher

Bereiten Sie die Daten vor, die von Tasks verwendet werden

Die meisten Geoverarbeitungs-Services sind als spezialisierte Anwendungen konzipiert, die Antworten auf spezifische räumliche Abfragen von Web-Clients liefern. Da es sich bei Tasks i. d. R. um spezifische Vorgänge für bekannte Daten handelt, besteht fast immer die Möglichkeit, die Daten zum Optimieren des Vorgangs vorzuverarbeiten. Beispielsweise handelt es sich beim Hinzufügen eines Attributs oder räumlichen Indizes um eine einfache Vorverarbeitung, um räumliche oder Attributauswahlvorgänge zu optimieren. Weitere Beispiele:

Fügen Sie Attributindizes hinzu

Wenn der Task mit Attributabfragen Daten auswählt, erstellen Sie einen Attributindex für jedes in Abfragen verwendete Attribut. Sie können das Werkzeug Attributindex hinzufügen verwenden. Sie müssen den Index nur einmal erstellen. Dies erfolgt außerhalb des Modells oder Skripts.

Fügen Sie räumliche Indizes hinzu

Wenn das Modell oder Skript räumliche Abfragen von Shapefiles ausführt, erstellen Sie mit dem Werkzeug Räumlichen Index hinzufügen einen räumlichen Index für das Shapefile. Wenn Sie Geodatabase-Feature-Classes verwenden, werden räumliche Indizes automatisch erstellt und verwaltet. Unter bestimmten Umständen kann durch Neuberechnen eines räumlichen Index die Performance verbessert werden (siehe Festlegen von räumlichen Indizes).

Verwenden Sie "synchron" statt "asynchron"

Sie können angeben, dass Ihr Geoverarbeitungs-Service synchron oder asynchron ausgeführt wird. Der asynchrone Modus stellt für den Server eine geringe Zusatzbelastung dar, was bedeutet, dass asynchrone Tasks kaum unter einer Sekunde ausgeführt werden. Das Ausführen eines Tasks erfolgt im Synchronmodus etwa um eine Zehntelsekunde schneller als im Asynchronmodus.

Vermeiden Sie unnötige Koordinatentransformationen

Wenn Ihr Task geographische Datasets aus verschiedenen Koordinatensystemen verwendet, müssen die von Ihrem Task verwendeten Geoverarbeitungswerkzeuge Koordinaten während der Ausführung möglicherweise in ein einziges gemeinsames Koordinatensystem transformieren. Je nach Größe Ihrer Datasets kann das Transformieren von Koordinaten aus einem anderen Koordinatensystem Ihren Task verlangsamen. Sie müssen darauf achten, welches Koordinatensystem Ihre Datasets verwenden, und ob die von Ihrem Task verwendeten Werkzeuge Koordinaten transformieren müssen. Sie können alle Datasets, die von Ihrem Task verwendet werden, in ein Koordinatensystem transformieren. Weitere Informationen zu Koordinatensystemen und deren Einfluss auf Geoverarbeitungswerkzeuge finden Sie in den unten aufgeführten Themen.

Verringern Sie die Datengröße

Jede Datenverarbeitungssoftware arbeitet schneller, wenn die Datasets klein sind. Es gibt mehrere Möglichkeiten, die Größe von geographischen Daten zu verringern.

Unterschiede zwischen 10.0 und 10.1

Wenn Sie Geoverarbeitungs-Services in 10.0 erstellt haben, gab es bestimmte Performance-Techniken, die Sie zum Erstellen von Services verwendet haben, wie unten angegeben. Sie benötigen diese Techniken in 10.1 nicht mehr.

VeraltetVeraltet:

Wenn Ihre ArcGIS for Server-Konfiguration mehrere Rechner umfasste (nun als Cluster bezeichnet) oder Sie UNC-Pfade zu Ihrem arcgisjobs-Verzeichnis verwendeten, wurde vor Version 10.1 die Einrichtung eines lokalen Auftragsverzeichnisses empfohlen. Dieses lokale Auftragsverzeichnis verbesserte die Ausführungszeit erheblich, da die Verarbeitung jedes Tasks auf dem lokalen Server erfolgt und das Endergebnis zum Client übertragen wird. Ab Version 10.1 ist der GIS-Serveradministrator für die Einrichtung lokaler Auftragsverzeichnisse zuständig. Als Task-Autor müssen Sie aber nicht mehr angeben, dass Ihr Task das lokale Auftragsverzeichnis verwendet, da dies automatisch verwendet wird, wenn der Server an einem Cluster mit mehr als einem Rechner teilnimmt oder die Verzeichnisse mithilfe eines UNC-Pfades referenziert werden.

VeraltetVeraltet:

Wenn Ihr Geoverarbeitungs-Service Raster verarbeitete, wurde vor Version 10.1 empfohlen, diese im GRID-Format zu verwenden. Das GRID-Format war normalerweise schneller, da einige Tools für die Verarbeitung von GRIDS optimiert waren. Ab Version 10.1 können alle Raster-Werkzeuge nun das Quellenformat ohne Performance-Verlust lesen und schreiben.

Verwandte Themen

9/23/2013