Momentan baue ich eine Instanz auf EC2, auf der der gesamte Planet.osm-Snapshot der gesamten Datenmenge der Erde für einige Projekte, an denen wir arbeiten, importiert werden kann. Ich habe eine große Ubuntu x64-Instanz hochgefahren und viel separaten Speicher auf einem EBS-Volume für die Postgres-Datenbank hinzugefügt und geändert, um die PGSQL-Daten dort unterzubringen.
Jetzt hat der Server Probleme osm2pgsql
beim Importieren des Snapshots ... Nach einigen Versuchen mit verschiedenen Speicherkonfigurationen und so weiter gibt der Prozess "Killed" aus, nachdem er den größten Teil des Weges hinter sich gebracht hat. Sobald es getötet wurde, während "ausstehende Wege durchlaufen", und beim nächsten Mal, nachdem der schmale Cache leicht angepasst wurde, erreichte es "verarbeitende Wege", bevor es abstürzte. Nach dem, was ich gelesen habe, ist dies im Allgemeinen auf Speicherprobleme zurückzuführen.
Hier ist mein letzter Versuch, den Import auszuführen:
osm2pgsql -v -U osm -s -C 4096 -S default.style -d osm /data/osm/planet-latest.osm.bz2
Und hier sind die Spezifikationen für eine große Instanz von EC2:
Große Instanz 7,5 GB Speicher, 4 EC2-Recheneinheiten (2 virtuelle Kerne mit jeweils 2 EC2-Recheneinheiten), 850 GB lokaler Instanzspeicher, 64-Bit-Plattform
Meine Frage ist - gibt es einige gute Benchmark-Ressourcen, um die Optimierungsanforderungen für osm2pgsql und Postgres zu bestimmen? Die Importgeschwindigkeit ist mir nicht einmal so wichtig, ich möchte nur sicherstellen, dass der Vorgang sicher abgeschlossen wird, auch wenn es 4 oder 5 Tage dauert ... Ich habe Frederick Ramms " Optimierung des Renderings " gelesen chain "(PDF) aus dem letztjährigen SOTM, aber gibt es noch andere gute Meinungen / Ressourcen?
quelle
Antworten:
Wie aus der Dokumentation hervorgeht , benötigen Sie dafür möglicherweise mehr als 256 GB RAM.
Ich weiß nicht viel über EC2, aber Sie können den Slim-Modus (--slim) oder Osmosis ausprobieren .
Es gibt einen interessanten Beitrag: http://weait.com/content/build-your-own-openstreetmap-server Hier steht "Sie müssen den Slim-Modus verwenden".
quelle
Aufgrund der Speicherbeschränkungen habe ich nicht einmal versucht, osm2pgsql zum Laden der Routing-Daten von planet.osm zu verwenden. Stattdessen habe ich osm2po verwendet:
http://osm2po.de/
Der Großteil der Dokumentation ist auf Deutsch, aber mit ein wenig Experimentieren konnte ich es zum Laufen bringen. Dauert ein paar Tage auf einem dedizierten Core 2 Quad (aber es wird nur ein Thread verwendet).
quelle
Ich bin auf Folgendes gestoßen, als ich nach etwas anderem gesucht habe: http://aws.amazon.com/datasets/2844 - Ich bin nicht sicher, ob es Ihnen helfen wird oder nicht, aber es könnte ein Ausgangspunkt sein.
quelle
Haben Sie eine Lösung für Ihr Problem gefunden, außer dass Sie ein altes, vorgeneriertes Paket verwendet haben? Ich habe anscheinend ein sehr ähnliches Problem in der EC2-Instanz. Ich verwende pbf planet von http://download.bbbike.org/osm/
Update: Ich habe anscheinend eine Lösung gefunden - nachdem der angeforderte Speicher auf 6 GB (Parameter -C 6000) reduziert wurde, funktioniert der Prozess (zumindest seit einigen Tagen, wird hoffentlich heute beendet).
Es scheint, dass die m1.large-Instanz mit 7,5 GB Speicher etwas zu wenig ist, um alle Knoten an den Speicher anzupassen (was heutzutage ungefähr 11 GB erfordern sollte). Das osm2pgsql scheint weniger als 700 MB zusätzlichen Arbeitsspeicher zu benötigen, so dass es mit -C 7000 nur wenig Arbeitsspeicher hat, aber mit -C 6000 (oder möglicherweise auch -C 6500) funktioniert.
Außerdem würde ich vorschlagen, eine höhere Speicherinstanz mit mindestens 15 GB RAM zu verwenden, um den Import zu beschleunigen. Oder sogar eine doppelt so große Speicherinstanz, die das Doppelte kosten würde, aber in der Lage sein sollte, den vollständigen Planetenimport im Nicht-Slim-Modus innerhalb von <5 Stunden durchzuführen (ungefähr 3-4-mal schneller als im Slim-Modus). Also wäre es eigentlich billiger.
quelle
Ich habe osm2pgsql auf EC2 mit weniger CPU und mehr RAM arbeiten. Es schlug aufgrund von Speicherproblemen fehl, bis ich die Instanz auf einen besonders großen Speicher mit 17 GB RAM erhöhte.
quelle