Hello, I am running my own OSM server setup as per the instructions on switch2osm.org (Manually building a tile server (18.04 LTS). Renderd (or rather PostgreSQL) is working quite slowly. From everything I have read, this is to be expected the first time that it generates tiles for an area. However, are there any performance tune-ups that anyone can suggest to speed up PostgreSQL specifically for Renderd? I have a m5.2xlarge machine in AWS EC2 (32 GB RAM, 1.5TB SSD (EBS), 8 vCPUs (4 Cores x 2 Threads per Core)). I think that this size of machine should perform faster than it is right now. Here are some sample renderd results from "/var/log/syslog"
It gets super slow in that zoom level sweet spot of 6, 7, or 8. I understand that these intermediate zoom levels have the most data to process. From various places around the web, I have gotten tidbits of information to speedup the performance. - I have set the PostgreSQL "maintenance_work_mem" setting to 64 MB (https://www.youtube.com/watch?v=Lxloo42gl8A) - Renderd "num_threads" is the default 4 (https://wiki.openstreetmap.org/wiki/User:SomeoneElse/Tuning_renderd_memory_usage) I also came across this StackExchange post (https://gis.stackexchange.com/questions/181728/mod-tile-not-using-all-available-threads) from several years ago that indicates that maybe the right indexes don't exist on my PostgreSQL setup. I ran the suggested command to see the indexes
Here is the output Can anyone comment on my setup and / or suggest any way of speeding up Renderd/PostgreSQL? I also tried running render_list to pre-render tiles but it ran for several hours without giving me any indication that it was doing anything - there were no messages on the screen indicating any progress, and "ps -aux" indicated that the total time run by render_list was 0:00. Maybe I was looking in the wrong place for progress information? asked 01 Apr '20, 17:14 Buzz1000 Spiekerooger |
The numbers from renderd in /var/log/syslog are alright. You just have to pre_render most of the tiles for at least up to zoom 12. But the way you are telling it, your prerendering failed. Did you miss the -m {mapname} param or the -a (or --all) in your render_list call? (I think it would be -m ajt in your case). You should start pre-rendering by calling
and watch /var/log/syslog | grep renderd to see if the prerendering is working. answered 02 Apr '20, 18:06 Spiekerooger Thanks for confirming the numbers. I have run render_list again and am seeing progress. Thanks for pointing out to use "/var/log/syslog | grep renderd". This shows progress being made.
(02 Apr '20, 18:15)
Buzz1000
Are you running full planet or just a country/region? If it's the former (planet) than just wait for some days now for the prerendering to run thru.
(02 Apr '20, 18:21)
Spiekerooger
|