Optimising the Mapnik Rendering Toolchain



Similar documents
OSM Tile Server. 1 Task Description & Background. Contents. (Version 2) <frederik.ramm@geofabrik.de>,

PostgreSQL when it s not your job. Christophe Pettus PostgreSQL Experts, Inc. DjangoCon Europe 2012

OSM-in-a-box A Ready-Made Highly Configurable Map Server

MongoDB and Couchbase

PostgreSQL Performance when it s not your job.

This document will list the ManageEngine Applications Manager best practices

BENCHMARKING CLOUD DATABASES CASE STUDY on HBASE, HADOOP and CASSANDRA USING YCSB

PostgreSQL when it s not your job. Christophe Pettus PostgreSQL Experts, Inc. DjangoCon US 2012

PGCon PostgreSQL Performance Pitfalls

Preparing a SQL Server for EmpowerID installation

Which Database is Better for Zabbix? PostgreSQL vs MySQL. Yoshiharu Mori SRA OSS Inc. Japan

MDM Multidomain Edition (Version 9.6.0) For Microsoft SQL Server Performance Tuning

PostgreSQL database performance optimization. Qiang Wang

Sawmill Log Analyzer Best Practices!! Page 1 of 6. Sawmill Log Analyzer Best Practices

NoSQL Performance Test In-Memory Performance Comparison of SequoiaDB, Cassandra, and MongoDB

INSTALLATION MANUAL POSTGRESQL9

Gleb Arshinov, Alexander Dymo PGCon 2010 PostgreSQL as a secret weapon for high-performance Ruby on Rails applications

Phire Architect Hardware and Software Requirements

Analyzing Network Servers. Disk Space Utilization Analysis. DiskBoss - Data Management Solution

PostgreSQL Performance Characteristics on Joyent and Amazon EC2

Molecular Devices High Content Data Management Solution Database Schema

Recommended hardware system configurations for ANSYS users

Table of Contents Introduction and System Requirements 9 Installing VMware Server 35

About Parallels Desktop 10 for Mac

High Availability of the Polarion Server

FileCruiser Backup & Restoring Guide

Hard Disk Drive vs. Kingston SSDNow V+ 200 Series 240GB: Comparative Test

Hardware/Software Guidelines

DIABLO TECHNOLOGIES MEMORY CHANNEL STORAGE AND VMWARE VIRTUAL SAN : VDI ACCELERATION

Performance test report

Tech Tip: Understanding Server Memory Counters

DSS. Diskpool and cloud storage benchmarks used in IT-DSS. Data & Storage Services. Geoffray ADDE

ZEN LOAD BALANCER EE v3.02 DATASHEET The Load Balancing made easy

Serving 4 million page requests an hour with Magento Enterprise

1.0 Hardware Requirements:

Sage Grant Management System Requirements

Hardware Configuration Guide

Novell File Reporter 2.5 Who Has What?

Embedded Linux development training 4 days session

Building an efficient and inexpensive PACS system. OsiriX - dcm4chee - JPEG2000

Network device management solution

How To Store Data On An Ocora Nosql Database On A Flash Memory Device On A Microsoft Flash Memory 2 (Iomemory)

Grant Management. System Requirements

IT of SPIM Data Storage and Compression. EMBO Course - August 27th! Jeff Oegema, Peter Steinbach, Oscar Gonzalez

ZEN LOAD BALANCER EE v3.04 DATASHEET The Load Balancing made easy

VMware Virtual SAN Backup Using VMware vsphere Data Protection Advanced SEPTEMBER 2014

Microsoft Office Outlook 2013: Part 1

ADAM 5.5. System Requirements

Using. Microsoft Virtual PC. Page 1

CISCO CLOUD SERVICES PRICING GUIDE AUSTRALIA

NEXTGEN v5.8 HARDWARE VERIFICATION GUIDE CLIENT HOSTED OR THIRD PARTY SERVERS

IMF Tune v7.0 Backup, Restore, Replication

Hardware and Software Requirements for Sage 50 v15 to v22

owncloud Enterprise Edition on IBM Infrastructure

Database Hardware Selection Guidelines

Getting Started with HC SharePoint Module

Directions for VMware Ready Testing for Application Software

NAS 249 Virtual Machine Configuration with VirtualBox

Software and Hardware Requirements

Abila Grant Management. System Requirements

MoversSuite by EWS. System Requirements

Big Fast Data Hadoop acceleration with Flash. June 2013

Benchmarking Cassandra on Violin

EMBL-EBI. Database Replication - Distribution

Division of Administration (DOA) Desktop Support

White paper. QNAP Turbo NAS with SSD Cache

NetIQ Privileged User Manager

Cloud n Service Presentation. NTT Communications Corporation Cloud Services

IBM Cloud Manager with OpenStack

An Oracle White Paper June High Performance Connectors for Load and Access of Data from Hadoop to Oracle Database

Chapter 7. Using Hadoop Cluster and MapReduce

Workstation Virtualization Software Review. Matthew Smith. Office of Science, Faculty and Student Team (FaST) Big Bend Community College

Technical Writing - A Practical Case Study on ehl 2004r3 Scalability testing

Parallels Cloud Server 6.0

INUVIKA OPEN VIRTUAL DESKTOP FOUNDATION SERVER

Netwrix Auditor for SQL Server

SLIDE 1 Previous Next Exit

Copyright Software Technology, Inc Cushman Drive Lincoln, NE (402)

Virtuoso and Database Scalability

Evaluation Report: Accelerating SQL Server Database Performance with the Lenovo Storage S3200 SAN Array

IMPORTANT Please Read Me First

Advances in Virtualization In Support of In-Memory Big Data Applications

Parallels Cloud Storage

RAID Storage System of Standalone NVR

SQL Server Virtualization

OBSERVEIT DEPLOYMENT SIZING GUIDE

How To Use Arcgis For Free On A Gdb (For A Gis Server) For A Small Business

Cognos Performance Troubleshooting

sql server best practice

Upgrading Client Security and Policy Manager in 4 easy steps

RAID Implementation for StorSimple Storage Management Appliance

Autodesk 3ds Max 2010 Boot Camp FAQ

Internet-in-a-Box Project

PostgreSQL 9.0 High Performance

Cisco IP Communicator (Softphone) Compatibility

Product Version 1.0 Document Version 1.0-B

4/10/2012. Hall. Cherokee. Bartow. Forsyth. Barrow. Gwinnett. Paulding. Cobb. Walton. DeKalb. Douglas. Fulton. Rockdale. Carroll. Clayton.

Remote Desktop Services

Netwrix Auditor for Windows Server

Transcription:

Optimising the Mapnik Rendering Toolchain 2.0 Frederik Ramm frederik@remote.org stopwatch CC-BY maedli @ flickr

Basic Setup Hetzner dedicated server (US$ 150/mo) Ubuntu Linux Mapnik 2.1 pbf planet file of March 2012 PostgreSQL 9.1/PostGIS 2.0 3x 120 GB SSD 32 GB RAM

1.

What does osm2pgsql do? planet dump osm2pgsql planet osm point planet osm line name highway oneway... planet osm polygon

osm2pgsql slim mode planet dump osm2pgsql planet osm point planet osm line name highway oneway... nodes ways rels planet osm polygon

osm2pgsql slim mode planet dump osm2pgsql These tables started out as pure helper tables for memory-poor systems. Today they are widely used because they are also a prerequisite for updates! nodes ways rels

Import Time plain HD SSD (plain HD: Seagate Barracuda 7200.14 3TB; SSD: 3xOCZ Vertex3)

Import Time << LOGARITHMIC!

Import Time 38956 seconds (10h 49m) I will be using this as a comparison figure from now on.

So you want to tune your system... use case application database operating system here: import planet file here: osm2pgsql here: PostgreSQL/PostGIS e.g. file system, drivers hardware e.g. memory, type of disk

So you want to tune your system... use case application database operating system here: import planet file here: osm2pgsql here: PostgreSQL/PostGIS e.g. file system, drivers hardware e.g. memory, type of disk we've looked at this only, yet.

So you want to tune your system... use case application database operating system here: import planet file here: osm2pgsql here: PostgreSQL/PostGIS e.g. file system, drivers hardware e.g. memory, type of disk

Import Time (all with SSD and -C14G)

So you want to tune your system... use case application database operating system here: import planet file here: osm2pgsql here: PostgreSQL/PostGIS e.g. file system, drivers hardware e.g. memory, type of disk

Import Time shared_buffers... work_mem... maintenance_... work_mem (all in MB // benchmarks with SSD and -C14G)

Import Time synchronous_commits... fsync... (all benchmarks with SSD and -C14G)

PostgreSQL Tuning for N00bs /etc/postgres/9.1/main/postgresql.conf: option default recommended shared_buffers 24 MB 8 MB work_mem 1 MB 1 MB maintenance_work_mem 16 MB 4096 MB fsync on off autovacuum on off (*) checkpoint_segments 60 random_page_cost 4.0 1.1 effective_cache_size effective_io_concurrency 1

Import Time (all benchmarks with SSD and -C14G)

So you want to tune your system... use case application database operating system here: import planet file here: osm2pgsql here: PostgreSQL/PostGIS e.g. file system, drivers hardware e.g. memory, type of disk

Various osm2pgsql options reference figure: 38956s (short of 11h) add reprojection (no -l): + 0.3% (slower) use 64bit osm2pgsql: + 11.7% (slower) unlogged tables: +17% (slower) flat node storage: +25% (slower) hstore: +10% (slower) batch 20100629-1005, 20100630-1721

What is hstore? uses a hash column to keep tag key/value combinations instead of tons of columns different flavours best results: --hstore and --hstore-match-only, with a list of must-have tags and a list of drop tags approx. 10% slower disk usage same as before (~ 280G) access to all extra tags (e.g. name:xx) batch 20100629-1005, 20100630-1721

What is flatnodes? instead of storing node lat/lon in a database table, uses a file on disk saves about 80G (30%) of disk space takes 25% longer but parallelises better if you must use a magnetic disk, flatnodes will usually give you a huge performance boost due to much reduced seeking batch 20100629-1005, 20100630-1721

Parallelisation (8-core machine) normal flat nodes (all benchmarks with SSD and -C14G)

Parallelisation (8-core machine) 22852 seconds (6h 21m) Best osm2pgsql slim mode import: --number-processes 6 --flatnodes normal flat nodes (all benchmarks with SSD and -C14G)

So you want to tune your system... use case application database operating system here: import planet file here: osm2pgsql here: PostgreSQL/PostGIS e.g. file system, drivers hardware e.g. memory, type of disk

Alternatives to osm2pgsql imposm: total import time 22893s out of the box, no updates 55 GB on disk (+17 temporary) (osm2pgsql with drop: 66 GB) different table structure; 50 minutes extra gives you simplified tables osmosis: unsuitable for rendering new OGR driver: no benchmarks yet

Slim Mode Updates scenario: one day's worth of updates applied to slim import basic settings as before

Update Time (all benchmarks with SSD)

Slim Mode Updates 64 bit: + 10% (slower) --number-processes=6: -5% (faster) flatnodes: -5% (faster) hstore: +/- 0 With HDD, +150% on minutely diffs (spending 14h per day on updates)

3.

Rendering Performance scenario: a batch of PostgreSQL queries were logged while rendering ~ 17k meta tiles, and replayed in various settings.

Rendering Performance basic result: 71 minutes (~ 4 MT/s) 64bit: + 1% HDD: +55% flatnode: +/- 0 hstore and views: + 1% even deliberately breaking PostgreSQL config (different shared_memory etc) did not change much.

Rendering Performance (standard OSM Mapnik style)

Rendering Performance Flattening this mountain requires simplification and/or clever indices. But is it worth it? (standard OSM Mapnik style)

Rendering Performance geometry simplification: beforehand (imposm) or on-the-fly (Mapnik option) indices: use analyze_postgis_log.pl from svn.openstreetmap.org/applications/utils/tirex/utils clipping: make sure you don't have giant geometries

In a Nutshell use SSD configure PostgreSQL right update every 10-15 minutes depending on use case, make indexes and simplify geometries

Thank you Frederik Ramm frederik@remote.org