Optimieren der Leistung beim Erstellen von Kartencaches in ArcGIS for Server 10.2.1


8

Ich bin relativ neu in ArcGIS for Server, daher hoffe ich, dass mich jemand in die richtige Richtung weisen kann, falls das, was ich getan habe, keine gute Praxis ist.

Ich habe 2 Boxen mit ArcGIS für Server 10.2.1, beide auf derselben Site. Beide Boxen haben 4 Prozessoren und 16 GB RAM. Beide Boxen laufen unter Windows Server 2008.

Geben Sie hier die Bildbeschreibung ein

Die Site wird sowohl verwendet, um einer kleinen Anzahl von Benutzern (<5) einige Basiskartendienste bereitzustellen, als auch um Cache-Kacheln für zukünftige Dienste zu generieren.

Ich generiere derzeit Cache-Kacheln für einen Mapping-Service (~ 50 GB). Ich hätte erwartet, dass die CPU-Auslastung der 2 Boxen ziemlich hoch ist. Aber es liegt in der Regel zwischen 15% und 30% auf jeder Box.

Die maximale Anzahl von Instanzen für die Caching-Tools ist auf 6 festgelegt.

Geben Sie hier die Bildbeschreibung ein

Die maximale Anzahl von Instanzen pro Computer ist auf 3 festgelegt.

Geben Sie hier die Bildbeschreibung ein

Bin ich falsch in der Annahme, dass ich eine höhere Auslastung der CPU sehen sollte?

Habe ich nicht die richtigen Zahlen eingegeben?

Oder ist mein Setup nicht die beste Vorgehensweise? dh sollte ich eine Site nur zum Bereitstellen von Karten und eine andere Site nur zum Zwischenspeichern verwenden?

Ich glaube, ich habe die hier und hier genannten Richtlinien befolgt . Aber ich bin mir ziemlich sicher, dass das Caching langsamer läuft als es sollte. Nach 19 Stunden hat es nur 1,17% aller meiner Kacheln zwischengespeichert.

Geben Sie hier die Bildbeschreibung ein

Vorschläge für bewährte Verfahren sind herzlich willkommen.

UPDATE: Nach 21 Stunden ist die CPU-Auslastung auf beiden Computern auf Null gesunken:

Maschine 1: Geben Sie hier die Bildbeschreibung ein

Maschine 2:

Geben Sie hier die Bildbeschreibung ein

Die Leiste für den Cache-Status "in Bearbeitung" auf dem Server wird noch verschoben, aber der Cache% hat sich in den letzten 2 Stunden nicht erhöht.


Ist Ihr Server unter Linux oder Windows?
Mintx

Mintx, ich habe die Frage mit den angeforderten Informationen aktualisiert.
Dan_h_b

nicht sicher, könnte aber auf Lese- / Schreibzugriff mehr als CPU zurückzuführen sein
radouxju

Das ArcServer-Konto hat vollen Lese- / Schreibzugriff auf den Zielordner und Lesezugriff auf die Datenbank, in der sich die Quelldaten befinden. Ich habe kleinere Bereiche von derselben Quelle bis zum selben Ziel ohne Probleme zwischengespeichert.
Dan_h_b

1
Ich denke, Radouxjus Kommentar bezog sich eher auf Festplatten-E / A-Konflikte als auf Berechtigungen. Die Geschwindigkeit, mit der die Prozesse Bilddateien schreiben können, könnte der Engpass sein.
Tomfumb

Antworten:


2

Es sieht so aus, als hätten Sie die Best Practices zum Erstellen des Caches ziemlich gut befolgt. Ihre Server haben genug Leistung, aber das Abrufen der Kartendaten aus Ihrer Datenbank kann ein Problem sein. Hier ist eine kleine Zusammenfassung dieser Website , die einige zusätzliche Tipps enthält, um das Beste für Ihr Geld zu bekommen.

1 - Analysieren Sie Ihre Karte, bevor Sie sie veröffentlichen!

Dies mag offensichtlich sein, aber ich war oft zu schnell, um auf dem Server zu veröffentlichen, ohne die Ergebnisse der Analyse zu überprüfen. Gehen Sie einfach zu File->Analyze Mapund überprüfen Sie kurz, ob Ihre Karte Probleme aufweist. Je schneller Ihre Karte gerendert werden kann, desto schneller kann sie zwischengespeichert werden.

2 - Halten Sie die Daten lokal

Wenn Sie eine einzelne Computerbereitstellung haben, bewahren Sie die Kartendaten in einer FGDB lokal auf dem Server auf. Wenn Sie mehrere Computer haben, lassen Sie jeden Computer eine Kopie der Daten haben und verwenden Sie beim Einrichten des Caches die Option "Lokales Cache-Verzeichnis beim Generieren von Kacheln auf dem Server verwenden".

Der obige Link enthält einige nützliche Tipps zum Umgang mit Fehlern sowie dieses praktische Skript , mit dem Caching-Fehler in einem Polygon-Footprint analysiert werden, sodass Sie problemlos zurückgehen und versuchen können, die ausgefallenen Bereiche erneut zwischenzuspeichern.

Diese Frage taucht immer wieder auf. Vielleicht können wir noch mehr Antworten bekommen und daraus ein Wiki machen. :) :)


1

Sie können auch die Caching-Controller und die Caching-Tools auf einen anderen Cluster einstellen. Dies sollte den Caching-Prozess vom regulären Prozesspool isolieren. Ich habe gesehen, dass dies zu einer besseren Leistung führt, wenn das Caching von regulären Arcgisserver-Funktionen isoliert wird. Normalerweise nenne ich dieses neue Cluster-Caching. Wenn Sie dann neue Computer zu Ihrer Installation hinzufügen, fügen Sie diese einfach zum Caching-Cluster hinzu. Dies erhöht die Verarbeitungsleistung. Wenn Sie eine geringe Auslastung feststellen, fügen Sie immer mehr Ressourcen hinzu, bis Sie eine Auslastung von etwa 70-80% erreicht haben. Sie möchten dennoch etwas Leistung lassen, um die Dateien hin und her zu kopieren und Konflikte um Ressourcen zu reduzieren.


1

Basierend auf der ESRI-Dokumentation ( http://server.arcgis.com/de/server/latest/publish-services/linux/accelerating-map-cache-creation.htm ) die Best Practice für die Anzahl der Instanzen, die für das Caching verwendet werden sollen ist n + 1, wobei n die Anzahl der auf dem Server ausgeführten Kerne ist. Ihre Server haben jeweils 4 Prozessoren und jeder X5690-Prozessor hat 6 Kerne gemäß der Dokumentation:

http://ark.intel.com/products/52576/Intel-Xeon-Processor-X5690-12M-Cache-3_46-GHz-6_40-GTs-Intel-QPI

Basierend darauf sollten Sie theoretisch in der Lage sein, 25 Caching-Instanzen pro Server zu verarbeiten. Jetzt weiß ich, dass das ESRI-Dokument für 10.3 ist, aber dies war die empfohlene Vorgehensweise für die letzten Versionen.

Ich habe ein ähnliches Server-Setup und kann Ihnen sagen, dass meine CPU 100% erreichen würde, bevor ich fast 25 Instanzen erreichen würde, aber ich kann 10-15 recht bequem verwenden.

Wenn Sie also getestet haben, dass Festplatten-E / A oder die Datenbank nicht die Engpässe sind, würde ich empfehlen, die Anzahl der Instanzen auf 10 zu erhöhen. Wenn dies Ihre CPU-Auslastung nicht erhöht, bedeutet dies, dass dies nicht der einschränkende Faktor war. Wenn es es erhöht, aber es immer noch vernünftig ist, können Sie versuchen, es weiter zu erhöhen.

Wie auch immer, die Moral der Geschichte ist nicht schüchtern, die Instanzen anzukurbeln. Einmal habe ich auch an einem ziemlich leistungsschwachen Server mit nur 2 Kernen und 3 Instanzen gearbeitet, der mich nicht weiter gebracht hat. Als ich jedoch die Instanzen auf 5 erhöhte, war die CPU-Auslastung angemessen. Die beste Vorgehensweise ist nur ein Ausgangspunkt.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.