added postgres improvments and some general optimisations

This commit is contained in:
Hendrik 2024-08-07 23:48:22 +02:00
parent 6088b9b37f
commit 8982d7d3da
3 changed files with 73 additions and 2 deletions

64
docker-compose.yaml Normal file
View File

@ -0,0 +1,64 @@
services:
map:
image: overv/openstreetmap-tile-server
environment:
- UPDATES=enabled
- MAX_INTERVAL_SECONDS=600
- REPLICATION_URL=https://planet.openstreetmap.org/replication/minute/
# - DOWNLOAD_PBF=https://download.geofabrik.de/europe/dach-latest.osm.pbf
# - DOWNLOAD_POLY=https://download.geofabrik.de/europe/dach.poly
- THREADS=10
- OSM2PGSQL_EXTRA_ARGS=-C 8196
- FLAT_NODES=enabled
# deploy:
# replicas: 4
- ALLOW_CORS=enabled
- TILESIZE=512
volumes:
- osm-data:/data/database/
- osm-tiles:/data/tiles/
- ./run.sh:/run.sh
# ports:
# - "8080:80"
command: "run"
shm_size: 2g
networks:
- traefik
labels:
- "traefik.enable=true"
- "traefik.docker.network=traefik-docker_default"
- "traefik.http.routers.openstreetmap-tile-server.rule=Host(`${VIRTUAL_HOST}`)"
- "traefik.http.routers.openstreetmap-tile-server.entrypoints=websecure"
- "traefik.http.routers.openstreetmap-tile-server.tls.certresolver=letsencrypt"
- "traefik.http.services.openstreetmap-tile-server.loadbalancer.server.port=80"
- "traefik.http.routers.openstreetmap-tile-server.tls=true"
import:
image: overv/openstreetmap-tile-server
environment:
- UPDATES=enabled
- MAX_INTERVAL_SECONDS=600
- REPLICATION_URL=https://planet.openstreetmap.org/replication/minute/
- DOWNLOAD_PBF=https://download.geofabrik.de/europe/dach-latest.osm.pbf
- DOWNLOAD_POLY=https://download.geofabrik.de/europe/dach.poly
- THREADS=10
- FLAT_NODES=enabled
- OSM2PGSQL_EXTRA_ARGS=-C 8196
dns: 1.1.1.1
volumes:
- osm-data:/data/database/
- osm-tiles:/data/tiles/
command: "import"
shm_size: 2g
volumes:
osm-tiles:
external: true
osm-data:
external: true
networks:
traefik:
external: true
name: traefik-docker_default

View File

@ -1,7 +1,7 @@
# Suggested minimal settings from
# https://ircama.github.io/osm-carto-tutorials/tile-server-ubuntu/
shared_buffers = 128MB
shared_buffers = 1GB
min_wal_size = 1GB
# max_wal_size = 2GB # Overridden below
maintenance_work_mem = 256MB
@ -16,10 +16,14 @@ wal_buffers = 1024kB
wal_writer_delay = 500ms
commit_delay = 10000
# checkpoint_segments = 60 # unrecognized in psql 10.7.1
max_wal_size = 2880MB
max_wal_size = 5GB
random_page_cost = 1.1
track_activity_query_size = 16384
autovacuum_vacuum_scale_factor = 0.05
autovacuum_analyze_scale_factor = 0.02
checkpoint_timeout = 60min
wal_level = minimal
max_wal_senders = 0
listen_addresses = '*'

3
run.sh
View File

@ -169,6 +169,7 @@ if [ "$1" == "run" ]; then
# Configure renderd threads
sed -i -E "s/num_threads=[0-9]+/num_threads=${THREADS:-4}/g" /etc/renderd.conf
sed -i -E "s/TILESIZE=[0-9]+/TILESIZE=${TILESIZE:-256}/g" /etc/renderd.conf
# start cron job to trigger consecutive updates
if [ "${UPDATES:-}" == "enabled" ] || [ "${UPDATES:-}" == "1" ]; then
@ -197,3 +198,5 @@ fi
echo "invalid command"
exit 1