Ubuntupaket für lokalen Tileserver

Fehler: “Server nicht gefunden. Der Server unter 78.47.17b0.221 konnte nicht gefunden werden.”

gruss
walter

ach ja, herzlich willkommen im forum.

Die “lokal Tiles” sollen von

geladen werden? Wie kommt das “b” in die IP :wink:

edit: Walter war schneller :frowning:

Wie rufst du denn die lokalen Tiles auf? wenn du das über localhost auf der Linuxmaschiene machst sollte es klappen. wenn du jedoch von außerhalb auf den Server gehst musst du die Datei Slippymap.html anpassen damit der Layer gefunden werden kann.

Hallo zusammen

mann bin ich blöd …

Alles geschaut - aber beim IP eingeben vertippt …

SORRY !!!

ABER - das ist ja furchbar langsam … - kann man das tunen ?
Maschine: 8GB RAM / 4er Intel CPU - normal SATA…

DANKE AUF JEDEN FALL !

Natürlich kann man tunen. Die Frage ist natürlich was der Flaschenhals ist. Da musst du also zunächst mal reinschauen. Wenn das Rechnen der Kacheln zu lange dauert, dann einfach die Kacheln im idle vorberechnen. etc. Ansonsten kann man auch die Datenbank tunen. Die Einstellungen dort sind laut Anleitung auch eher konservativ damit sie auf vielen Systemen laufen.

Zum Tunen bieten sich mehrere ‘klassische’ Maßnahmen an:

  • Tiles vorab rendern
  • Mehr Hauptspeicher
  • Aufteilen der DB auf mehrere Platten
  • Schnellere Platten entweder durch
    o höhere Drehzahl und größere Spurkapazität
    o Raid-Verbund
    o SSD Platten (mindestens für den Index)

Was davon am besten hilft, hängt wie schon geschrieben davon ab, wo es am meisten klemmt.

Edbert (EvanE)

Hallo zusammen,

erstmal danke für eure Antworten - ich hab mir schon sowas gedacht …
Aktuell läuft mal der Datenimport von “Deutschland” hier kann man dann mal sehen, wo es wirklich “klemmt”.

Eine OT Frage: Ich bin recht “frisch” in dir OSM Thematik - daher bitte Entschuldigung, wenn ich evtl etwas dumm frage…

Jetzt hab ich also einen Kachelserver - soweit so gut.
Will ich jetzt einen Ort/Straße suchen, brauche ich einen Geogoder - korrekt ? (z.B.: http://wiki.openstreetmap.org/wiki/Nominatim)) - korrekt ?
Möchte ich auf der Karte eigene Objekte darstellen (Marker, Routen etc…) brauche ich Openlayers - korrekt ? (http://openlayers.org/)
Möchte ich eine Route zwischen 2 Punkten berechnen kann ich einen Router nehmen z.b: https://github.com/DennisOSRM/Project-OSRM/wiki/Running-OSRM

Ist das soweit korrekt oder habe ich hier einen Denkfehler ?

CU
GTR

Korrekt…

Vielleicht hilft Dir zum Spielen dieser Link aus der letzten Wochennotiz 113 weiter: http://www.openstreetmap.org/user/AndrewBuck/diary/17698

Die dort verlinkte virtuelle Maschine liefert Dir mit einem Mausklick einen fertigen Render-Server, einen Geocoder (Nominatim) und eine rudimentäre OpenLayers-Seite…
Sehr komfortabel das…

Keinen Denkfehler - nur 'ne Wissenslücke :wink:

man kann anstelle von OpenLayers auch LeaFlet nehmen. Ist etwas schlanker und dadurch einfacher. Allerdings nicht so sehr verbreitet.
Nominatim ist ok und zu den Routern kann ich nichts genaues sagen. OSRM ist aber gut.

Gruss
walter

Vielleicht solltest du erst dein Anforderungsprofil festlegen und dann an die Umsetzung gehen.

Deine Karte wird schon jetzt mit Openlayers dargestellt. Also openlayers hast du schon an Board. Wenn du etwas suchen möchtest brauchst du dafür in erster Linie eine Datenbank und ein Programm was die Suchanfragen soweit “aufweicht” das damit korrekte Objekte gefunden werden. Im Idealfall gleichst du damit andere Schreibweisen und -fehler gleich auch noch aus.
Auch ist es hilfreich wenn du die Art des Objektes eingrenzen kannst. Sprich du suchst eben Straßen und nicht Orte oder irgendwelche Cafes. Unterumständen bist du da mit einer eigenen Suchfunktion und SQL besser dran. Aber das musst du selbst schauen. Der Vorteil wäre wenn du es aus der Osm2pgsqldatenbank auslesen könntest das du keine zweite mit ähnlichen Daten dafür vorhalten müsstest.

Hallo zusammen

erstmal vielen Dank für die viele Anregungen und Hilfestellungen … - das ist nicht unbedingt “üblich” - daher nochmals DANKE !

Zum thema Tuning nochmals:

ich bin mir nicht sicher, ob es hier wirklich um “Tuning” geht…

Denn der Server ist eigentlich permanent im Leerlauf - mache Kacheln werden angezeigt - andere garnet - dann dauert es wieder ewig bis überhaupt was kommt …
Als ich gestern nur “Oberbayern” in der DB hatte ging das wenigstens noch so halb - jetzt mit Deutschland überhaupt nicht mehr vernünftig …

Der Import hat keine Fehlermeldungen erzeugt und lief über Nach sauber durch.
Der Daemon startet soweit auch - der Server ist eigentlich ständig im leerlauf…

Was mache ich falsch ?

Hier mal der Link: http://78.47.170.221/osm/slippymap.html

Ich hab auch schon mehrfach sämtliche LOG-Files kontrolliert ob hier etwas kommt, apache und den render Daemon neu / als Front gestartet … ich komme nicht drauf…

@VIW: Ja - ich sehe das prinzipiell auch so - allerdings möchte ich erst mal ein “Gefühl” für OSM bekommen - dazu gehört nach meiner Meinung aber erstmal, dass die einzelnen Komponenten funktionieren und dass ich verstehe, wie alles zusammenspielt - wir haben bisher immer mit G-Maps gearbeitet - und hier ist halt vieles anders - vor allem, wenn man mit “fertigen Lösungen” arbeitet - das ist ja hier nicht der Fall.
CU

Das sieht doch sehr nach Datenbank aus. Hast du hier mal die Standardparameter geändert? Ich bin leider der falsche Ansprechpartner dafür, aber laufen denn SQL Anfragen zügig durch, damit der Server futter zum rendern/arbeiten bekommt? Eventuell gibt es die Möglichkeit auch noch die Datenbank irgendwie zu optimieren. Nach dem großen Import ist sicher erstmal einiges durcheinander.
komerziellen Support bietet auf jeden Fall die Geofabrik an und Frederick hat das Programm zum Import maßgeblich mit entwickelt.
Sollte die Datenbank der Flaschenhals sein und die Parameteränderung nichts helfen, dann wäre darüber nachzudenken die Indezes in Den Hauptspeicher oder auf SSDs auzulagern. Letzteres geht auf jeden Fall, ist aber sicher keine Standardlösung.

Wie beiOSM alles zusammenspielt ist gut gesagt. Es git eigentlich mehr oder weniger Einzellösungen, die man nach seinen Bedürfnissen kombinieren muss. Du hast mit dem Tileserver ein Komplettpaket für einen Tileserver installiert. In wirklichkeit stecken darin aber eine osm2pgsql Datenbank im Gegensatz zu einer Snapshot oder anders auf bereiteten Datenbank liefert die sehr gute Ergebnisse zum Rendern. Das wiederum macht Mapnik für dich. In dem Paket sicher noch nicht in der aktuellsten Version. Diese Programm käme sicher mit einer Vielzahl von Eingangsdaten klar. shp osm und Co. Aber die Datenbank lässt sich am besten updaten und liefert immer nur kleine Brocken. das kann den Prozess beschleunigen.
Damit Mapnik weiß was er tun soll, gibt es eine Erweiterung des Apache Servers namens Renderd. Dafür gibt es aber auch andere Möglichkeiten.
Wenn du ein Routing versuchen möchtest kann man neben osrm auch ein Datenbank bassiertes Routing mit pgroute machen. Das erfordert wieder ein spezielles Datenbankformat. Im Extremfall hast du also 3 Datenbanken mit den Deutschland daten auf deinem Server laufen. Ob dafür 8GB Aberbeisstpeicher noch aussreichend sind?

Hallo

ja - das habe ich schon soweit erfasst - im Prinzip sind das lauter einzelne Lösungen die dann selbst zu kombinieren sind - mit zusammenspielen meinte ich “wie diese zu kombinieren sind” um ein Ergebnis zu erzielen.
Der Server ist momentan auch nur ein “Virtueller” auf einem größeren Server - das ist aktuell aber alles nur TEST-Stadium…

So wie ich das aktuell sehe funktioniert das überhaupt nicht, da vieles überhaupt nicht angezeigt wird - und der Server im Leerlauf dahin dümpelt … Ich denke also dass das etwas überhaupt nicht funktioniert …
Ich finde momentan nur überhaupt keinen Ansatz wo ich noch schauen soll…

Evtl kann mir hier jemand weiter helfen ! - das währe toll …
CU
GTR

PS: zum Link mit dem VM-Image - das ist Virtual-BOX - ich habe hier nur VMware - eine Konvertierung ist zwar offenbar möglich - aber auch nur erheblichem Aufwand.

Hallo zusammen

erstmal - Grundproblem gelöst - der DB-Server wollte nicht starten … - sorry - ist mir erst jetzt aufgefallen…
Nun läuft´s grundsätzlich mal mit ganz DE - allerdings noch immer SEHR Träge.

Kommen wir zurück zum Thema Tuning:

Ich habe hier Themen gelesen wie:

  • Titles vorher Rendern
  • Im Hintergrund rendern lassen, wenn der Server nix zu tun hat
    usw…

In welcher Config steuere ich das denn ?

NACHTRAG: Komischerweise arbeitet der “Renderer” in den hohen Zoom-Stufen" - in der Gesamt-Ansicht von Deutschland fehlt aber die rechte Hälfte und auch in der 2. und 3. Zoom-Stufe arbeitet renderd nicht - komischerweise aber wenn man weiter rein zoomt - dann arbeitet das System … - verstehe ich nicht !
Macht es evtl sinn, die Kacheln komplett vorher oder im Hintergrund rendern zu lassen ?

CU
GTR

Ich bin kein Mapnik-Fachmann, aber so weit ich es verstanden habe, hat Mapnik verschiedene Strategien für verschiedene Zoomstufen.

In den hohen Zoomstufen, wo zum Zeichnen wenig Daten nötig sind, aber es eine sehr grosse Menge Tiles gibt, werden die Tiles bei Bedarf gezeichnet. Updates markieren existierende Tiles als “dirty” und werden bei einem erneuten Abruf neu gezeichnet. Würdest du alle Tiles für DE in den höchsten Zoomstufen rendern, bräuchtest du einigen Plattenplatz.

In den niedrigen Zoomstufen müssen hingegen wenige Tiles mit sehr grosse Datenmengen geladen werden. Ferner hast du permanent Änderungen, so dass diese Tiles meistens “dirty” wären. Daher werden die niedrigen Zoomstufen periodisch komplett neu gezeichnet und nicht auf Abruf. Der Algorithmus geht davon aus, dass du bereits Daten von einem früheren Lauf hast. Du musst jetzt einfach etwas Geduld haben. Scheinbar ist halb Deutschlad in der niedrigsten Stufe schon fertig :slight_smile:

Bei der Konfiguration wann welche Strategie etc. kann ich dir aber überhaupt nicht helfen.

Bevor hier Mißverständinsse auftreten. Mapnik besitzt keine Strategien. Mapnik macht nur was ihm gesagt wird! Im Prinzip geht das wie folgt: Mittels der htmldatei wird Openlayers mitgeteilt welche Layer in welchen Zoomstufen verfügbar sein sollen. Es wäre also der erste Ansatz dort zu schauen ob dein Layer auch die ersten Zoomstufen umfasst oder Openlayers den Server gar nicht fragt weil ihm gesagt wurde da gibts nichts.
Als zweites wird dann der Server gefragt hast du das Teil? Dort wird dann quasie überprüft ist das Ding da? Wenn ja ist es aktuell? dann wird es ausgeliefert. Wenn nein dann wird ein Auftrag für Mapnik fertig gemacht. Das alles steuerst du über renderd. Allerdings soll das etwas älter sein.
Wenn du quasi auf dem gleichen Server vorher nur Bayern hattest und jetzt Deutschland importiert hast, wäre es möglich das die Tiles ohne Inhalt schon vorher erstellt wurden. Damit sind sie vorhanden und bei einem neuen Import nicht als veraltet markiert worden. Sprich nach dem neue Daten angekommen sind mussen die alten Tiles als Alt gekennzeichnet werden.
Man kann alles vorberechnen. Das geht im Prinzip am schnellsten, wenn man ans ausliefern denkt. Es ist aber für ein sich öfter ändernden Datenbestand unökonomisch, weil bis das Tile wirklich angeschaut wird hat es sich vielleicht schon dreimal geändert. Du hättest also umsonst gerechnet. Das ist eben die Frage der Strategie.

Hallo

so - jetzt hab ich das verflixte Problem endlich gelöst - das war ne Mischung aus “altem Cache” und falsch konfigurierter Datenbank.
Zudem habe ich die timeout´s in der vhosts für das Laden und rendern der Kacheln erhöht - nun läuft das.

Wenn ich das jetzt alles richtig verstanden habe funktioniert die ganze geschichte so:

Der Nutzer ruft einen Ausschnitt auf - mod_title schaut nach ob diese im Cache liegt - liegt diese im Cache, wird dieser angezeigt - wenn nicht, werden diese Ausschnitte gerendert, angezeigt und im Cache abgelegt.

Soweit richtig ?

Allerdings dauert das “LIVE RENDERN” doch recht lange, was die Frage aufwirft, ob es hier einen “besseren” weg gibt ?

Kann man:

  • Bestimmte ZoomStufen FIX im Cache ablegen lassen (wenn der Server nix zu tun hat) ?
  • Evtl alles Rendern ? (Platzproblem ?)
  • andere Ansätze ?

CU
GTR

Soweit richtig verstanden. Und auch die beiden Ansätze sind die einzig möglichen bzw. eine Mischung daraus. Du musst schauen wieviel Platz, wie oft aufgerufen, wie oft aktualisiert? Daraus musst du dann die Strategie ableiten. Wenn du nie aktualisierst oder nur selten und viel Platz hast, gehts mit alles rendern sehr schnell. Wenn du ständig aktualisierst (minituley diffs) dann veralten Tiles sehr schnell. Das sollte man dann nach Zoomstufe angepasst so einstellen.
OSM verwirft auch Gewisse Bereich sofort nach der Erstellung wieder, wenn sie ausschließlich im Meer liegen sowas passiert in Deutschland aber eher nicht so oft.
Ein weiteres Kriterium ist auch das du in einer Umgebung in der jemand gerade Tiles holt schnell weiter zu berechnen damit er später beim Scrollen gar nicht merkt das die noch nicht da waren.

Hallo

kann ich irgendwie “alles” in den Cache rendern lassen ?
Wenn ja - wie ?

CU
GTR

Frag dich mehr: WOHIN?
Soviel Terabytes hast du wohl nicht an deinem Server vorrätig. Selbst auf “unserem” OSM-Tileserver reicht der Platz wohl nicht.
Hier mal die Konfiguration: http://wiki.openstreetmap.org/wiki/Servers/yevaud (*)
Ausserdem mach es wirklich keinen Sinn, da sich jederzeit an jedem Ort was ändert.

Gruss
walter

*) Kleines Schmankerl: gesammte DB auf SSD