Librenix
Headlines | Linux | Apps | Coding | BSD | Admin | News
Information for Linux System Administration 

Testing the Digital Ocean $5 Cloud Servers with an MMORPG

Up
vote
Down

I've been working on an space-based MMORPG for a while now and I finally reached a point where the server was largely complete and ready for some load testing. I had done quite a bit of testing on my quad-core Xeon development system with great results. Renting a dedicated box like that one, and with a decent Internet connection would not be cheap, however.

I was curious about Digital Ocean's offerings so I decided to take a couple of their smallest virtual machines for a test run. These 5 dollar/month cloud servers have 512MB of memory, a single virtual CPU, and 20 gigabytes of SSD disk storage. I created the first one, Maelstrom, in one of their New York data centers and the second one, Paradise, in their San Fransico facility. As claimed, each server took just under 60 seconds to deploy.

I made a few customizations to the bare-bones CentOS 6.5 64-bit image that I had selected for both machines. I then ran my personal benchmark package on both. On my 256 megabyte benchmark that emulates a relational database instance, I got about 25% of the performance of one of my Ivy Bridge Xeon cores. This benchmark stresses memory bandwidth, takes advantage of the full range of caches, as well as loading the CPU with integer-only operations.

I consider a fourth of an Ivy Bridge core an excellent result for a $5(US) server! I repeated the tests over the following days and got consistent results varying within a 10 percent range. One thing of note; the SF server consistently performed about 10% faster than the NY server.

Next, I loaded up a million-sector instance of my MMORPG server engine on the NY server and a bundle of testing scripts on the SF machine. The test suite, which emulates 712 concurrent players requires 1424 processes to do that. In retrospect, it wasn't too surprising that I crashed the SF machine as the testing scripts created an urgent demand for far more than 512 MB of memory! My mistake. I suspected that I wasn't going to be able to fully stress the game engine with far fewer emulated players.

But, always the optimist, I set up a gigabyte of swap space on Paradise and tried again. This time the tests ran just fine -- and the SSD-based swap space performed beautifully.

I got an average of 2500 game transactions per second over the duration of the test -- which should be more than enough for my target of 1000 concurrent players per realm. The SF machine used one half of the GB(!) of swap space while running the test scripts and hummed along happily at about 75% busy.

The NY server was fully stressed at about 98% CPU utilization and remained very responsive for the duration of the test.

I'm still running both systems three weeks later and have experienced no reboots or outages so far.

The New York server continues to run my text-based space MMORPG server back-end for game-play testing as the graphical front-end client is developed.
mail this link | score:9966 | -Ray, May 13, 2014
More Sysadmin articles...

Abstract Art Prints on Canvas

admin headlines

Setup Dashboard and VNC console on Two Node Controller+Compute Neutron GRE+OVS+Gluster Fedora 20 Cluster

How to install S3QL from source on Fedora 19

Linux find command examples: finding files

Tutorial: Install Nginx, PHP5, PHP-FPM, MySQL on Fedora 19

VirtualBox Headless Administration

Encrypt your data with EncFS (Debian 7)

Tutorial: Install Lighttpd, PHP5, and MySQL on Ubuntu 13.04

Tutorial: Installing Apache2, PHP5, MySQL on Ubuntu 13.04

Installing The Galera-Iworx Cluster

Server Monitoring With munin And monit On Debian Wheezy

Tutorial: Use PHP 4.4.9 (FastCGI) with Apache (Debian 7)

Glances CLI curses based monitoring tool for GNU/Linux

 

Firefox sidebar

Site map

Site info

News feed

Features

Login
(to post)

Search

 
Articles are owned by their authors.   © 2000-2012 Ray Yeargin