Raspberrypi.osm-tile-server: Unterschied zwischen den Versionen

Aus OrgaMon Wiki
Zur Navigation springen Zur Suche springen
Zeile 85: Zeile 85:


== Speicher Sparmaßnahmen ==
== Speicher Sparmaßnahmen ==
=== erhöhe Swap auf 2GB ===
/etc/init.d/dphys-swapfile stop
joe /etc/dphys-swapfile
  CONF_SWAPSIZE=2048
/etc/init.d/dphys-swapfile start


=== reduziere Memory-Split auf 16 MB ===
=== reduziere Memory-Split auf 16 MB ===

Version vom 30. März 2020, 12:02 Uhr

  • Ziel ist ein Tile-Server "Deutschland" aufzusetzen, dieser soll per http://tile.host.domain/z=&x=&y= PNG Kacheln für den OrgaMon liefern
  • Bestandteile sind
    • Rohdaten der Geofabrik Karlsruhe Frederik Ramm
    • postgresql Datenbank als Datenknecht
    • osm2pgsql als Befüller der Datenbank
    • mapnik macht aus XML -> PNG
    • tirex konnektiert auf die Datenbank macht aus x,y,z -> XML und gibt es an mapnik

System-Voraussetzungen

  • Raspberry Pi 4 B 2 GB mit Stretch Lite (ohne Desktop)
  • Raspberry Pi 4 B 4 GB mit Desktop
  • an USB gekoppelte Festplatte (ab 100 GB) oder 128 GB Micro SD Karte

Vorbereitungen

  • Schliesse über den USB Port eine SSD an (128 GB ausreichend!)
  • Erstelle darauf ein ext4 Dateisystem und mounte es nach /srv/osm

hole software

apt install postgresql-postgis mapnik-vector-tile mapnik-utils osm2pgsql screen

richte eine neues Datenbank-Ablagestelle ein

 #
 # Mehr information hier:
 #
 https://www.digitalocean.com/community/tutorials/how-to-move-a-postgresql-data-directory-to-a-new-location-on-ubuntu-16-04
 #
 # schneller Weg hier:
 #
 cd /srv/osm
 systemctl stop postgresql
 mv /var/lib/postgresql/11/main .
 mv main db
 joe /etc/postgresql/11/main/postgresql.conf
  data_directory = '/srv/osm/db'
 systemctl start postgresql

erstelle die Datenbank "gis"

sudo -u postgres createdb gis
sudo -u postgres psql gis -c "CREATE EXTENSION postgis";


# optional "Kontrolle"
#
#
SELECT name, default_version,installed_version FROM pg_available_extensions WHERE name LIKE 'postgis%';
\q

Tirex

https://wiki.openstreetmap.org/wiki/Tirex

  • Ist das wirklich notwendig?
apt install libipc-sharelite-perl libjson-perl libgd-gd2-perl libwww-perl
git clone https://github.com/openstreetmap/tirex.git
cd tirex
make

hole Deutschland

wget https://download.geofabrik.de/europe/germany-latest.osm.pbf

4 GB belegt

carto nik4

  • Ist das wirklich notwendig?
apt install openstreetmap-carto nik4

importiere Deutschland

#
# die folgendes Aktion geht sehr lange - ev. macht man das in einem screen!
#
sudo -u postgres osm2pgsql --slim --username postgres --unlogged -I -C 200 --database gis germany-latest.osm.pbf

74 GB belegt

Speicher Sparmaßnahmen

erhöhe Swap auf 2GB

/etc/init.d/dphys-swapfile stop
joe /etc/dphys-swapfile
 CONF_SWAPSIZE=2048
/etc/init.d/dphys-swapfile start

reduziere Memory-Split auf 16 MB

raspi-config
 Advanced Settings
   Memeory Split
    -> 16 MB

Tuning von PostgreSQL

Frederik Ramm hat die PostgreSQL-Optimierung dokumentiert auf http://www.geofabrik.de/media/2012-09-08-osm2pgsql-performance.pdf

  • Ich gehe hier mal vom Standard-Pfad aus:
joe /etc/postgres/11/main/postgresql.conf
 shared_buffers = 32MB
 maintenance_work_mem = 32MB
 fsync = off
 random_page_cost = 1.1

mod_tile

https://wiki.openstreetmap.org/wiki/Mod_tile#Install_mod_tile_From_Source


apt install libmapnik3.0 libmapnik-dev mapnik-utils python-mapnik autoconf apache2-dev apache2-utils apache2 git
git clone https://github.com/openstreetmap/mod_tile
cd mod_tile