As our server has grown and more services have been added I’ve been able to get a better sense of where our weak points are.
Last year we upgraded the server hardware to remove a CPU and disk bottleneck by moving to Intel’s latest 6 core CPU and a top of the line SSD in the Samsung 840 Pro 128GB.
But when we did those upgrades we didn’t yet have any online webpages. The shop wasn’t made until May 14th, Auctions were in July and Cards in September.
These services each present a different kind of drain on our resources, bandwidth. These pages are quite simple and you wouldn’t expect them to create a large burden on our infrastructure but actually the upload bandwidth to serve these pages is quite high due to the images hosted on their pages.
So to fix this problem I have set up an image mirror on our web host to take the load of serving our images off our game server. To give you an idea of the issue, each time someone loads their card deck they may request up to 20MB of image content from our server if they have a full deck with 80 or more cards. Even someone with just 20 cards may request up to 5MB of images.
Browser caching minimizes this for repeated queries but when you have over 450 players with card decks it quickly becomes a substantial daily amount of bandwidth being used.
I monitored the bandwidth use over the past week and found we were using almost 1.5GB a day just from serving images for the Shop, Auctions and Cards pages. Quite a lot of bandwidth when you consider our daily total upload is usually only 18GB. That’s 8.4% of our bandwidth each day dedicated to just serving images!
So I’m pretty confident with our new image mirror which is live as of this post we can improve overall server performance by minimizing the impact of serving other kinds of content from the game server.