Benutzung von render_list um Tiles prerendern

Hallo Leider gibt es zu render_list recht wenig Infos. Ich habe einen neuen Tileserver mit Planet aufgetzt.

Jetzt würde ich gerne Deutschland Prerendern:
welche Zommlevels sind sinnvoll und vor allem wir muss ich Renderlist aufrufen damit nur D und nicht alles vom Planet vorgerendert wird ?

inzwischen habe ich eine Lösung gefunden je Zommstufe Tiles zu rendern, Allerdings bin ich mir nicht sicher ob alles richtig läft weiss jemmand ob render_list output generieren kann damit sich sehe ob sich was tut ? Console bleibt auf diesem Stand stehen:

/usr/bin/render_list -v -n 6 -all --socket=/var/run/renderd/renderd.sock --min-zoom=12 --max-zoom=12 -x 2112 -X 2208 -y 2624 -Y 2880
Rendering client
Planet timestamp file (/var/lib/mod_tile//planet-import-complete) is missing
Starting 6 rendering threads
Rendering all tiles from zoom 12 to zoom 12
Rendering all tiles for zoom 12 from (2112, 2624) to (2208, 2880)
Requesting xml(default) x(2112) y(2624) z(12)
Requesting xml(default) x(2112) y(2648) z(12)
Requesting xml(default) x(2112) y(2632) z(12)
Requesting xml(default) x(2112) y(2640) z(12)
Requesting xml(default) x(2112) y(2656) z(12)
Requesting xml(default) x(2112) y(2664) z(12)

Hi TFrank,
Welche Zoomlevels sinnvoll sind, hängt davon ab, wie du auf der Karten sehen möchtest (z.B. Hausnummer werden für gewöhnlich erst ab Zoom 17 dargestellt). Ich verwendet für Wanderkarten Zoom 0-16 (wobei Zoom 0-16 für ganz Deutschland vermutlich ziemlich viel Platz und Renderzeit braucht).

Damit nicht der ganze Planet, sondern nur Deutschland gerendert wird, musst Du die Zoomlevels mit render_list einzeln rendern und mit -x,-X,-y,-Y die Kachelgrenzen angeben. Die Kachelgrenzen sind nicht in Koordinaten, sondern die Kachelnummern (z.B. http://a.tile.openstreetmap.org/13/4371/2856.png => z=13,x=4361,y=2856)

Hier ein Beispiel (nicht für Deutschland, sondern für einen Alpenausschnitt)
render_list -a -z 0 -Z 0 -x 0 -X 0 -y 0 -Y 0 -s /var/run/renderd/renderd.sock
render_list -a -z 1 -Z 1 -x 0 -X 1 -y 0 -Y 1 -s /var/run/renderd/renderd.sock
render_list -a -z 2 -Z 2 -x 0 -X 3 -y 0 -Y 3 -s /var/run/renderd/renderd.sock
render_list -a -z 3 -Z 3 -x 4 -X 4 -y 2 -Y 3 -s /var/run/renderd/renderd.sock
render_list -a -z 4 -Z 4 -x 8 -X 9 -y 5 -Y 6 -s /var/run/renderd/renderd.sock
render_list -a -z 5 -Z 5 -x 16 -X 18 -y 10 -Y 12 -s /var/run/renderd/renderd.sock
render_list -a -z 6 -Z 6 -x 34 -X 34 -y 21 -Y 22 -s /var/run/renderd/renderd.sock
render_list -a -z 7 -Z 7 -x 67 -X 69 -y 42 -Y 45 -s /var/run/renderd/renderd.sock
render_list -a -z 8 -Z 8 -x 136 -X 162 -y 90 -Y 119 -s /var/run/renderd/renderd.sock

Grüße Andreas

Hallo Andreas,

danke für die Infos. so habe ich mir das auch gedacht nur wo kann isch shene ob render List was rendert ich habe in einer 2.Console renderd mit debug gestartet ausser folgen 2 Zeilen ehe ich nach Aufruf von Redner list nichts mehr


renderd[30440]: DEBUG: DONE TILE default 12 2160-2167 1304-1311
renderd[30440]: DEBUG: DONE TILE default 12 2160-2167 1304-1311 in 18.837 seconds

Hi tfrank,
Ich verwende den Parameter -a. Weiß nicht mehr auswendig wofür er steht, aber kannst du den mal bei dir hinzufügen entfernen. Das Debug-Log des Renderd sieht bei Dir normal aus.
Grüße Andreas

EDIT: Entferne auch mal das -all

Ok jetzt seh ich was im renderd. Passt

Allerdings noch eine Vertändisfrage ich lasse jetzt ganz D in verschieden Zommstofen vorrendern. Irgendwann sind die Tiles ja dirty oder werden automatisch gelöscht. brigt das ganze ann überhaupt performance oder muss ich das ganze dann in ner Schleife vorrendern lassen ?

Sobald die Datenbank upgedated wurde werden alle älteren Tiles bei Aufruf neu gerendert. Die vorgerenderten Tiles dienen dann nur noch als Ersatz falls der Renderer die neue Darstellung nicht schnell genug bereitstellen kann und ein Timeout zuschlägt.

Automatisch gelöscht wird soweit ich weiß nichts.

Vorrendern bringt nur etwas wenn der Renderer live nicht hinterherkommt, für

  • sehr häufig aufgerufene Tiles (gibt einen Stau in der Warteschlange)
  • Zoomlevel die sehr lange für das Rendern brauchen (z8 und z9 bei OSM Mapnik Regeln, Antwortzeit für einmal Rendern bereits zu lange)

Wenn Du Kacheln in hohen Zoomleveln vorrenderst, die größtenteils nie jemand anschaut bevor sie schon wieder veraltet sind, verschlechterst Du die Performance Deines Servers eher durch die hohe Grundlast. Live-Anfragen werden zwar bevorzugt behandelt, aber bereits laufende (Vor)Rendervorgänge werden nicht abgebrochen, es entstehen also Wartezeiten.

Wenn das Vorrendern länger dauert als die Zeit zwischen DB-Updates dann ist es eh sinnlos. Ich rendere nach dem Update bis z13 vor, das schafft mein Server bis zum Morgen. Für z16 liegt die Renderzeit aufgrund der exponentiell steigenden Zahl von Tiles bereits im Bereich von Wochen.

bye, Nop