diff --git a/doc/recommended_specs.md b/doc/recommended_specs.md new file mode 100644 index 0000000..75456aa --- /dev/null +++ b/doc/recommended_specs.md @@ -0,0 +1,76 @@ + +# Recommended specs + +Recommended specs for running the mapserver + +## Storage + +The tiles are cached in several zoom-levels on disk. +Storage usage depends heavily on map-size and explored areas +but it will be in the region of several gigabytes (5 to 10 GB for "older" servers) + +## Memory + +Memory depedends on the amount of caching (see: [Configuration](./config.md)) +Per default there will be around 500 mapblocks cached for quicker access. +This will be around 5 to 10 megabytes depending on the contents. + +The recommendation is to maximize caching so the queries don't slow down the game-database. +If you are willing to spend around 2 GB of memory set the `maxitems` to 5000 mapblocks. +Otherwise leave the defaults and see if it has any impact. + +Example config from `mapserver.json`: +```json +{ + "mapblockaccessor": { + "expiretime": "10s", + "purgetime": "15s", + "maxitems": 500 + } +} +``` + + +## CPU + +The application is more CPU-bound than IO-bound. +It will use all the configured CPU's while rendering: + + + +It is recommended to set the `renderjobs` setting to a number of CPU's +you can spare. + +Per default it will set the setting to the number of cores you have, +but it will also run on just 1 job and take a bit longer... + +Example config from `mapserver.json`: +```json +{ + "renderingjobs": 2 +} +``` + +## Database + +The recommended database is Postgres if you have a busy server. +SQLite will work too if the disk-access is good. + +**Personal experience**: Don't worry about it if you have fast SSD's ;) + +## Network + +I don't recommend serving the map behind a slow residential internet connection. +An upload-bandwidth from 10 MBPS upwards will do the job pretty ok though: + + + +# Recap + +If your setup looks something like this, don't worry about performance: + +* 4+ cores +* 8+ GB RAM +* 20+ GB SSD +* Postgres DB + diff --git a/pics/cpu_graph.png b/pics/cpu_graph.png new file mode 100644 index 0000000..1f8491d Binary files /dev/null and b/pics/cpu_graph.png differ diff --git a/pics/network_graph.png b/pics/network_graph.png new file mode 100644 index 0000000..2b3dc46 Binary files /dev/null and b/pics/network_graph.png differ diff --git a/readme.md b/readme.md index 61c76dc..4754dd9 100644 --- a/readme.md +++ b/readme.md @@ -19,6 +19,7 @@ Demo: [Pandorabox Server map](https://pandorabox.io/map/#-1782.25/493.5/10) * [Parameters](doc/params.md) * [Search](doc/search.md) * [Configuration](doc/config.md) +* [Recommended specs](doc/recommended_specs.md) * [Contribution](doc/contrib.md) * [Development](doc/dev.md) * [License](doc/license.md)