Tell me more ×
Geographic Information Systems Stack Exchange is a question and answer site for cartographers, geographers and GIS professionals. It's 100% free, no registration required.

I am currently trying to render Water (3,198,333 records) and detailed world borders (processed_p) for the world. I am successful in rendering both layers, but I am not happy with performance.

My current setup is as follows:

  • Amazon EC2 instance (m2.2xlarge)
  • 34.2 GB of memory
  • 13 EC2 Compute Units (4 virtual cores with 3.25 EC2 Compute Units each)
  • 850 GB of instance storage
  • 64-bit platform
  • I/O Performance: High
  • Mapnik, 4 threads
  • Postgresql settings based on these benchmarks
  • GiST index in place for all of my layers

Some of my Ideas to Increase Performance:

  • Simplifying my features
  • Don't render water tiles - when loading with openlayers can set load failure to blue color
  • Split world water features into various sections and explicitly tell mapnik its bounds. For example, if I split water features from North America, when Mapnik is generating tiles for Australia it should not query North America to see if any of its features are in the tiles.
  • My second idea is a bit more crazy. Since Mapnik performs a spatial query for each tile in order to find features to process, I can perform this query beforehand for all of my layers. I would assume that this would save some processing power.

My Question: What else can I do to optimize tile rendering?

share|improve this question
Have you seen the "Optimize Rendering with PostGIS" github.com/mapnik/mapnik/wiki/OptimizeRenderingWithPostGIS for some tips? – Mapperz Apr 19 '12 at 20:20
Hi Mapperz. Yes, I made sure to only load water features to my database. So, all of my polygons & lines are already prefiltered and are water features. I also vacuumed my database and applied the suggested indexes. – Diego Apr 19 '12 at 20:37
Hi, I haven't used Mapnik before but if it is possible to cache tiles at some zoom levels or for certain areas it will improve performance. – dango Jun 28 '12 at 6:07

1 Answer

Here are some links: http://www.geofabrik.de/media/2010-07-10-rendering-toolchain-performance.pdf

http://www.geofabrik.de/media/2012-09-08-osm2pgsql-performance.pdf

another point: split data to more tables: the less objects to filter, the faster the rendering

share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.