We are running performance tests for vector tiles serving and rasterization. In these tests, tiles are served without any caching to obtain the raw server performance. Every VM runs a single MapTiler Server instance with a default rasterization configuration. The load was generated from 50 virtual users.
Performance tests results
OS |
Azure VM type |
RAM |
CPUs |
Vector tiles |
Vector tiles |
Raster tiles hits/s |
Raster tiles AVG response time (ms) |
---|---|---|---|---|---|---|---|
RHEL 8.2 |
Standard A2 v2 |
4 GB |
2 |
190 |
206 |
13 |
2910 |
Ubuntu 20.04 |
Standard D4s v3 |
16 GB |
4 |
490 |
76 |
34 |
1099 |
Ubuntu 20.04 |
Standard D2as v4 |
8 GB |
2 |
668 |
56 |
37 |
1031 |
Performance tips
- Configure caching in production is basically a must-have, see how to configure it in Nginx.
- More CPUs and RAM will be used mainly during map rasterization, if you serve vector/raster tiles, multiple CPUs will not help you much. Rather invest in fast SSD drives.
- Rasterization uses internal caching massively, if you use it for the whole planet (lots of fonts etc) 16 GB RAM is the minimum.
- The Rasterization performance can be tuned in server settings/rasterization. Setting renderer pool size higher than CPU count can slightly increase throughput but beware that every renderer allocates its own memory space.
- The raster size for Map raster tiles is either 256 or 512.
- The Static Maps have limits defined in Settings -> Static maps.
How to get the best rasterization performance
This configuration or higher will help you achieve the best rasterization performance
(making raster PNG/JPG images from OpenStreetMap dataset)
- 32 CPUs
- 128 GB RAM
- 200 GB of SSD storage for tiles, fonts, glyphs
- set up your own cache - NGINX
- MapTiler Server behind NGINX
- NGINX content caching
- NGINX caching guide
- Redis
- Memcache (using cache in memory for fast access)
Useful links
MapTiler Server Technical Specification
MapTiler Server behind NGINX
Comments
0 comments
Please sign in to leave a comment.