Das Rendern von Kacheln beschleunigen

Hallo,

habe Tile-Server installiert. Alles läuft soweit sehr gut.

Das System hat im Leerlauf unter 3% CPU-Last. Erst wenn man herum zoomt werden die Kacheln generiert und CPU-Last steigt entsprechend an. Beim Verschieben werden die Kacheln dann angezeigt.

Für den Online-User ist es jedoch sicher kein gutes Erlebnis herum zu scrollen damit die Kacheln angezeigt werden.

Kann man das Rendern der Kacheln im voraus beschleunigen? So dass, die Maschine Paar Tage die Kacheln unter Volldampf durchläuft?

Im Moment läuft renderd im Hintergrund sehr sehr langsam, wenn überhaupt. Auf jeden Fall merkt man nicht viel davon.

Weiss nicht, wie aktuell meine Installation noch ist, aber render_list war bei meinem renderd dabei und kann Kacheln vorberechnen.

Habs ausprobiert… Ein Stück München im Zoomlevel 15:

render_list -a -m Kartenname -z 15 -Z 15 -x 17427 -X 17455 -y 11369 -Y 11382

(Kartenname ist der Name der Karte aus der renderd.conf, die Nummern der Kacheln hab ich mir geholt, indem ich die Kacheln linksoben und rechtsunten angesehn hab und mir die URL kopiert).
Kommt mir ein bisschen unbequem konfigurierbar vor, wenn man eine Region vorrendern will (nur ein Zoomlevel, wenn man die Karte auf ein paar Koordinaten begrenzt und nicht “ganze Erde, Zoom 1-9” will). Da finde ich tirex und tirex-batch deutlich schöner, aber wenn man renderd mal hat will man vielleicht lieber damit weiter arbeiten.

Habe jetzt so ausgeführt:

  1. Erst in screen rein. Bei OSM kann es ja etwas dauern.
screen
  1. Dann im screen render_list ausführen:
render_list --all --min-zoom=1 --max-zoom=18 --num-threads=8 --map=ajt

… oh je! Planet hat bestimmt eine halbe Milliarde Kacheln.

Anleitung gibt es hier:

https://www.volkerschatz.com/net/osm/render_list.html

Danke für den Tip!

Hallo,

es ergibt nur Sinn, bis Zoomstufe 12 vorzurendern. Darüber hinaus explodiert die Anzahl der Tiles. Dort, wo wenige Leute hinschauen (hohe Zoomstufen in entlegenen Gebieten), braucht man auch nicht vorrendern.

Für die Renderingperformance sind folgende Dinge wichtig:

  • PostgreSQL-Datenbank auf SSD/NVMe (ohne das kannst du gleich aufhören)
  • PostgreSQL-Datenbank nicht auf Netzwerkspeichern (Beteuerungen von Marketing-Leuten bzlg. der Performance basieren auf anderen Zugriffsmuster als sie beim Rendering auftreten)
  • PostgreSQL-Indexe auf SSD/NVMe. Es genügt nicht, die Datenbank in einem separaten Tablespace zu haben, wenn das PostgreSQL-Datenverzeichnis (bei Debian /var/lib/postgresql) auf langsame Datenträger zeigt. /var/lib/postgresql müsste dann von den schnellen Datenträgern gemountet werden.
  • Die PostgreSQL-Indexe, die der Kartenstil empfiehlt, anlegen. Bei OSM Carto sind diese in indexes.sql im Git-Repository zu finden.
  • Prüfen, ob Indexe fehlen. Hierzu in den PostgreSQL-Einstellungen log_min_duration auf 2000 (ms) setzen und PostgreSQL neu laden (systemctl reload postgresql.service). Anschließend im PostgreSLQ-Log schauen, was als langsam gemeldet wird. Manche Layer werden lahm bleiben (v.a. amenity-points/text-point und roads-fill/roads-casing)

Viele Grüße

Michael

Eher 90 Milliarden Kacheln. Hast Du 50 Terabyte frei?
Schau Dir die Auswirkung mal im Tile Size Calculator an:
https://tools.geofabrik.de/calc/#type=geofabrik_standard&bbox=-168.144554,-84.918362,190.459937,84.436278

Ich wünsche ich Dir eine angenehme Wartezeit. Ich hoffe Du hast genug Tee im Haus. :slight_smile:

Mein Kartenstil ist geschwindkeitsoptimiert (schneller als OSM Carto) und umfaßt in etwa Europa. Das Rendern bis Zoomlevel 16 dauert mit halber Leistung in etwa 2 Monate.
Nach jedem Kartenupdate lasse ich bis Zoom Level 13 vorrendern, das geht über Nacht und ist realistisch.

Zusätzlich zu den Optimierungsratschlägen oben kannst Du auch noch die Indices per SQL Befehl clustern.
Es hilft wenn Tiles und DB auf unterschiedlichen Datenträgern sind, sonst bremst das Speichern und Ausliefern der Tiles die Datenbank.
Ich nehme an die allgemeinen Hinweise für die Konfiguration der PostGIS Datenbank hast Du bereits in der Anleitung gehabt und umgesetzt?

Für mehr Geschwindigkeit müßtest Du anfangen, die Suchanfragen im Kartenstil selbst zu optimieren. Der Standardstil ist da nicht unbedingt perfekt. Das ist aber eine Wissenschaft für sich, Frederik von der Geofabrik hat da mal einen sehr nützlichen Vortrag gehalten, finde ihn aber grade nicht.