Recently, a creator of one of the woodworking sites I frequently visit and subscribe to his YouTube channel began to have database problems and he requested help on Google+ for anyone that could lend him a hand. Being who I am, I figured I would give it a shot.
He began with a shared hosting account on Hostgator and eventually outgrown it. Given they start at about $4 per month, there’s not much one can complain about when it comes to value. Any static website or blog with minimal requirements should work on these shared hosting services (whom of which are notorious for overselling the space). After the host telling him that he was using too many resources, he was moved to a small VPS and then moved again to a larger one totaling $105 per month! One would think by the time you’re paying that much for hosting, a site that gets about 3-4k visits per day shouldn’t have trouble…but it did!
With my offer to help accepted, I soon began to check out the server resources. Apache nor MySQL were remotely closed to being optimized for the VPS size purchased. While I could understand a cheap unmanaged VPS package having a default configuration but not a managed one and most certainly not at $105/month. Another illustrious concept is that no swap was configured nor would the hypervisor allow me to mount swap either. Another interesting “feature” is that I could not get PHP to run anything higher than 64MB of RAM despite Hostgator’s best/worst recommendations, nothing they could tell me would work.
So what do we have? A 2GB VPS that idles with less than 1GB free, a completely default LAMP install, and the inability to do what would be expected as a root user. Whenever he would get any type of a load (read: influx of 20-30 people at a time hitting the site after posting an article), the site would slow to a crawl and if he was unlucky enough, completely run out of memory causing the OS to kill the highest memory process (mysqld).
I attempted to get his site functional but regardless of actions, any small influx of traffic would result in the MySQL process being killed. This was so bad, I used a ssh client on my iPhone that had a script setup to login and run /etc/init.d/mysql restart to get the server back online.
Finally, I advised my friend that it was time to move on. After shopping for a couple days, I stumbled upon Digital Ocean. They provide non-managed VPS servers (they call them “Droplets”). I don’t really mean for this article to be an advertisement for Digital Ocean but it practically will be unintentionally will become one. For just $5/month, you can get a 1 CPU/512MB/20GB Droplet that has a “real” root access without any limitations. While the highest plan is 96GB RAM, I’d imagine more options are available if sales were contacted.
With 5 different data centers (your choice), 5 different OS flavors and nearly 50 different images combined, there is surely an OS version that will fit your needs. To take it a step further, they offer pre-loaded “Applications” such as Ubuntu 12.04 w/LAMP, Ubuntu w/Wordpress, Ruby, Ghost, and more to come.
A robust API is available to integrate your own services into control and creation of Droplets.
By the time most of you read this, I’ll have migrated all of my sites over to Digital Ocean from a shared web host that I’ve used for over 10 years…yes it’s just *that* good of service.