The previous update was well received, so here are the improvements we’ve made over the last month.
1. New Backend Render Servers in Taiwan
We’ve added 2x new backend render servers, generously hosted by Taiwan Digital Streaming Co: azure-01 (currently offline due to a hardware issue) and azure-02. These servers are located in Taiwan, and the CDN now directs a portion of backend traffic for the Asian region to this new pool.
We’re still very keen to expand capacity across Asia, APAC, and Oceania, and we’ll continue to improve load balancing in these regions over time.
2. Improved CPU Performance via BIOS Tuning
We’ve improved CPU performance by tuning the energy_perf_bias setting and related BIOS options - including enabling Turbo Boost and Sub-NUMA Clustering where appropriate.
On one previously misconfigured system, this reduced the osm2pgsql initial import time from 41 hours to just 14 hours - a substantial improvement.
BIOS Settings Before on a misconfigured system:
BIOS Settings After:
3. Resolved IPv6 Backend Performance Issue
We investigated and resolved a frustrating performance issue affecting IPv6 connections to backend servers during high load. Due to a bug in apache, socket sharding was only enabled on IPv4 listeners, leading to sporadically slow uncached tile loads for users accessing tiles when the backend used an IPv6 connection.
As a workaround, we’ve switched all OpenStreetMap.org servers to IPv6-only apache listeners, which avoids the bug and results in noticeably improved miss performance. We have also updated our Fastly CDN configuration to now prefer IPv6 connections to the backend. ![]()
4. Backend Server OS and Database Upgrade
We have now completed the migration of all backend render servers from Ubuntu with PostgreSQL 16 to Debian with PostgreSQL 17. The relevant infrastructure code has also been updated to only test against Debian going forward.
5. Targeted Blocking of Abusive Scrapers
Additional targeted blocking of abusive tile scraper that were disproportionately overloading our tile servers and degrading performance for the vast majority of users.
These requests violated our tile usage policy and consumed an unfair share of resources. Blocking them has helped improve overall service reliability and responsiveness.
6. Improved CDN Backend Pool Balancing
We’ve rebalanced the CDN backend server pools to improve responsiveness during regional daily traffic peaks. We’ll continue to monitor the balancing.
7. CORS Header Added to Error Tiles
We’ve added the appropriate CORS response headers to error tiles, which resolves an issue where these tiles were not being displayed in some cases.
8. CDN Backend now using TLS 1.3
We’ve switched all CDN backend connections to use TLS 1.3, reducing connection negotiation overhead and improving performance.

