Ich habe mich eine wenig durch die spärlichen Windowsanleitungen { warum Windows (7)… ich habe 0 Ahnung von Linux } durch gehangelt und bin auf folgendem Stand:
Postgresql Db 9.3 32 Bit mit Postgis
osm2pgsql zum Daten Import
Python 2.7
openstreetmap-carto für TileMill zum (Um)gestalten des Kartendesigns
Mapnik 2.2.0 zum Rendern der Tiles
Es läuft alles soweit ganz gut
Ich rendere mit ca. 70 Tiles die Sekunde auf folgendem Rechner
AMD Phenom II X4 3.0 Ghz
8 GB RAM
256 SSD
Nun meine Fragen
Ich suche, da ich doch ein sehr schlechte Designer bin, eine TileMill Projekt im deutschen OSM Stil damit ich die dann bissi anpassen kann.
Kann mir die jemand zur Verfügung stellen?
Dann noch eine Frage zu den Performance.
Ich habe
=> alle Shape Files in die DB gepackt
=> das Python Script mal so angepasst, dass es nicht jeden Tiles in die cmd printen
=> dem Postgres Server mehr Speicher über die postgresql.conf verschafft
Was könnte ich denn noch alles machen um etwas mehr Tile pro Sekunde zu bekommen?
In deiner obigen Aufzählung hast du die Postgis-Erweiterung vergessen.
Um dir gezieltere Hinweise geben zu können, müsste man mehr über deine Ziele wissen und wie groß der Bereich ist den du rendern willst.
PS-1: Herzlich willkommen im Forum und bei OSM.
PS-2: Eine Leerzeile reicht in der Regel aus.
Danke für die rasche Antwort Eine Zeile wird gemacht
Genau Postgis habe ich vergessen… es ist schon ein Haufen Tools, die man installieren und verwerden muss
Meine Ziele sind:
Die ganze Welt zu rendern
Anschließend “vorerst” nur Deutschland aktuell zu halten.
Meine Firma möchte eine Android App mit eigenem Tile Server entwickeln.
In der App können dann Gebiete wie z.B. Hessen Offline per MBTiles verwendet werden
Der Style der Tile soll den deutschen OSM Style entsprechen.
Es soll OSM mit Informationen der Müllentsorgung gefüttert werden. (Lagerplätze, Müllkippen usw.)
Wir haben nun eine Root Server bestellt.
Es wird ein Intel® Xeon® E5-1650 v2 Hexa-Core Ivy Bridge-E mit 32 GB DDR3 RAM und 2 x 2 TB SATA 6 Gb/s 7200 rpm
Leider keine SSD
Ich habe beim mir auf dem System irgendwie nicht gesehen, dass viel RAM verwendet wurde…
Ich muss doch nur in der Config des Postgres Server die folgenden Punkten ändern oder ?
=> maintenance_work_mem => 512MB
=> shared_buffers => 768MB
=> work_mem => 512
Wie groß sollte ich die Swap-Device machen?
Ich denke die Platten sind dann im Raid, dass werde ich aber nochmal checken.
Wie kann man die Indizes der Datenbank auf einen anderen Pfad legen? Ich hab da irgendwie nichts gefunden…
Ich verwende im Moment die Beispiel-Datenbank von Postgis.
Nach den Flatfiles hab ich jetzt auch schon mal gesurft, finde da aber nicht wirklich etwas dazu.
Hast du vielleicht eine Link für mich bzw. kannst du mir sagen wie es geht?
Metatiles habe ich jetzt schon paar mal gelesen und gehört. Mir ist auch klar, dass einfach 1 größes Tile gerendert wird und das dann in 4 gesplittet wird.
Ich verwende im Moment einfach die Generate_Tiles.py http://svn.openstreetmap.org/applications/rendering/mapnik/ mit paar kleine Anpassungen… hab leider auch erst letzte Woche mit Python angefangen
Hättest du da vielleicht ebenfalls eine Link für mich
Dann noch 2 Fragen die ich hätte:
autovacuum = off oder autovacuum = on… wenn ich das autovacuum = off schalte dann meckert Postgres immer von wegen Dateninkonsistenz Oder magst du mir mal dein Conifg zur Verfügung stellen
Sollte ich Postgres bzw. osm2pgsql 64bit verwenden und Python + mapnik 32bit? das würde die DB doch ebenfalls etwas performanter machen oder ?!?
Die Geofabrik hat unter dem Ordner http://www.geofabrik.de/media/ wohl mehrere sehr interessante PDFs rum liegen. Deswegen die Frage, wie du an das PDF gekommen bist. Ich hatte da eins, dass auf einer älteren PostGres Version aufgesetzt hat.
Super da hab ich noch paar Sachen entdeckt, die ich mal antesten werde
Sorry, falls der falsche Eindruck entstanden ist, ich würde mich mit Postgres / Postgis auskennen.
Mein ‘Wissen’ kommt vor allem von Diskussionen im Forum oder auf talk-de.
Der Rest ist allgemeines Computer-Wissen.
Konkret kann man bei Postgis jede Tabelle auf ein Device seiner Wahl anlegen resp. dorthin verschieben.
Gefühlsmäßig würde ich mit dem Vierfachen des Hauptspeichers anfangen.
Raid muss nicht immer die beste Alternative sein.
Im konkreten Fall ist es wahrscheinlich wegen der Zugriffzeiten günstiger die Daten über zwei getrennte Platten aufzuteilen. Beispielsweiße die Index-Tabellen auf die eine Platte und die Daten-Tabellen auf die andere Platte. Auf die weniger belastete Platte dann noch den Swap, wobei dafür eine eigene (kleinere) Platte immer am günstigsten ist.
Es geht einfach darum den Overhead zu reduzieren.
Bei OSM sind die Node-IDs bereits größer als 2^31. Wer also heute sicher für die Zukunft sein will, nimmt von vorne herein 64Bit System und Software. Es sei nicht verschwiegen, dass auch 32Bit Programme mit 64Bit Daten umgehen können. Aber da steckt immer zusätzlicher Aufwand drin und es kann versteckte Abhängigkeiten geben, die im Zweifelsfall nicht leicht zu finden sind. Welche Auswirkung eine Kombination von 64- und 32-Bit Versionen auf die Performance hat, vermag ich nicht einzuschätzen.
In Summe kann ich dir bei speziellen Fragen z.B. zur Konfiguration nicht wirklich helfen. Mit den zusätzlichen Angaben und Fragen in deinem zweiten Post, sind jetzt auch die Spezialisten aktiv geworden.
Weiß nicht mehr woher ich den Link habe…aber fand es so interessant, dass ich mit den gemerkt habe. Mehr interessante PDFs gibts da nicht für Deinen Zweck…ingesamt 30 pdf, teilweise von 2007 habe ich gefunden. Da Directory Browsing nicht erlaubt ist, würde ich ungern posten wie man das rausfindet.