How to judge PC Server specifications for a local map server?

Good day!

I am wondering if there are any guidelines on selecting hardware specifications for a local map server?
As this will cost a lot of money and ordering will take me months,
I am trying to be careful before buying the server.
Any info or suggestion is much appreciated.

Btw, my local server will contain the whole map and I will assume 100~1000 users will be accessing it.

Thank you!

It seems that the metric of tiles (or metatiles - 8x8 tiles) per second is a better perfomance metric.
You should ask on https://lists.openstreetmap.org/listinfo/dev , there will be more people who might have set up a tile server.

First off, what exactly do you mean with local map server? A tile server, like the one serving the bitmap tiles you see on openstreetmap.org?

In that case, you can start by having a look at the specs of the tile servers that openstreetmap.org uses, e.g. vial and orm. You will however have less users so can scale that down a bit.

To further adjust your planning:

  • The single most important resource for a tile server is always fast hard disks. Go with SSD(s) whenever possible. If you want to use RAID, do NOT attempt to use RAID5/6, only RAID1/10.
  • How up to date does the data have to be? If you want to follow the minutely updates, then there is absolutely no way around SSD(s). It is not possible to do that with normal hard discs, they simply cannot keep up.
  • The database for rendering currently needs roundabout 500 GB (with hstore enabled), and you should allow for future growth. Again, this should if at all possible be put onto SSDs. Plus you need space for the rendered tiles, but they can be stored on normal hard disks if you want to save on the SSDs.
  • What style do you want to render? Just one or multiple? If your style is a lot more complicated than the default-style (called openstreetmap-carto), this will increase requirements; as will rendering multiple styles, but not by a factor of two.
  • It’s not so important how many users access your tileserver, but how many different tiles they hit. If they all view the same area, they all get the same tiles, and that’s really just delivering a file from hard disc, nothing that will cause much load. The hard part is if these users access a part of the map that noone else accessed before or has changed since it was last accessed, because then the server has to render that, and that means a lot of work for it.

Thanks! I just subscribed to this. I will see how it goes.

Thanks for the reply!

Yes I wanted to create a tile serving server. And from your questions and information, I will definitely go with SSDs. From the style, currently I am planning to use the basic one but for future references I might consider rendering multiple styles.

What does this mean? Does RAM takes its control over this? So better RAM can cope up to this kind of situation?

Currently, considering the financial aspect, I am looking for this server spec.
CPU: Intel® Xeon® Processor E5-2683 v4(40 MB SmartCache Cache, 16 Cores, 32 Threads)
Memory: 32GB~64GB
HDD: 1~2TB SSD
If this can handle 10k~50k users accessing the problem you said about accessing pre-rendered maps.
Then I might go with this.

Oh sorry about the CPU. It would probably not be that specific but as long as it is “16 cores and 32 threads”.

I would say, the more RAM the better. Therefore I would take the 64 GB RAM option. Cores… maybe 4 Cores (8 threads) could be enough.

In my experience, it’s nearly impossible to prerender all zoom levels from 1 to 19 and keeping them up-to-date. You might want to render level 19 only on request, maybe level 18 as well. Alternatively, you could think about limiting your map to zoom levels 1 to 17, this would make the hardware much cheaper.

I see. Okay I will be going with 64GB ram.Thanks!
I kept my zoom from 5-15 so I think I will have no issue? Hopefully.
With regards to the CPU, I will probably stay at that level so my system may cope up on changes in the future.

Thank you!

Zoom level range 5–15 should not be a problem at all.

If I may ask… What is the reason for using an own map server? Specialised map style? Regular map style but special map overlay (e.g. bus routes or something like this)?

Another reason for running a server is that you are providing an end user service. The main OSM servers are not dimensioned, or funded, to a level that can support significant end user use.

Okay thanks!

For future yes.
And as what hadw said, we do not want to contribute to the load that OSM is having.