Screencast 33: Setting up a Cloud MBTiles Server with Benchmarks

I ran some benchmarks via Apache ab on the local network of both our local physical tile server (8 core 4GB Windows) and the Digital Ocean cloud server (1 core 512MB). The $5/month cloud host was faster, though it isn’t a night-and-day difference. Microsoft has worked pretty hard to make Nodejs performant on Windows. Still, it says a lot that a $5/month host can tell a beefy physical box to bang off.

Physical Server
1
2
3
4
5
6
7
8
9
10
Requests per second:    270.71 [#/sec] (mean)
Time per request: 14.776 [ms] (mean)
Time per request: 3.694 [ms] (mean, across all concurrent requests)
Transfer rate: 8181.02 [Kbytes/sec] received

Connection Times (ms)
min mean[+/-sd] median max
Connect: 0 0 0.4 0 2
Processing: 10 14 8.2 13 110
Waiting: 6 11 7.9 9 103
Digital Ocean $5/month
1
2
3
4
5
6
7
8
9
10
Requests per second:    283.02 [#/sec] (mean)
Time per request: 14.133 [ms] (mean)
Time per request: 3.533 [ms] (mean, across all concurrent requests)
Transfer rate: 8540.27 [Kbytes/sec] received

Connection Times (ms)
min mean[+/-sd] median max
Connect: 0 2 2.1 1 21
Processing: 4 12 7.7 10 73
Waiting: 0 9 7.3 8 69
Commands Used
1
2
3
4
5
6
7
8
9
10
# install software
apt-get install nodejs nodejs-legacy npm git
npm install -g forever

# pull in git repo
git clone https://github.com/tobinbradley/mbtiles-server.git tiles

# from tiles folder to start server
chmod +x starter.sh
./starter.sh

Resources