During the past couple of months I have noticed my site ( as well as other things) have been going down unexpectedly. The server running at home was getting on now (first purchased in 1997 as a desktop PC and changed to a headless server in 2002/2003) and it has held up very well in the past. The time has come to off load some of the services it provides.
I decided to move the LAMP stack (well the AMP part of it) to a VPS as an interim solution till I can fix or solve my availability issue with the server. The website was the most separate part of the server and does not need to be local with in the network (unlike CUPS which provides the network printer access). I went on the recommendation of Toby Weston and went with CheapVPS. They were fairly cheap and used various technology like HyperVM and OpenVZ which were mentioned in TLLTS podcast episode 278. Since the VPS was going to be a temporary solution till I got things sorted out I went with the cheapest option which gave me the following specs:
I thought the above specs would be fine because the server it was running on now wasn’t that much more than what they were offering with the exception of RAM which had 192MB (1x128MB + 1x64mb). There were a variety of Linux distributions on offer too.
I went ahead and filled out an order form for a VPS. I requested the lowest plan (as quoted above) and wanted Ubuntu 8.04 on it.
After submitting the order I realised how manual the process was going to be. I got an automated mail saying my order was to be processed and have to wait for another email to confirm / pay for the VPS. Why couldn’t I pay for it with the order request? Not long after I submitted my order I had to wait for the VPS to be set up. This part took the longest. From the time I submitted the order till when I got the email to say it was set up took almost 24 hours. One thing I noticed was how the web interface to the virtual machine uses a different login user name to the account for paying off invoices.
I went ahead and set up some repositories (it only had one in the source file) and proceeded to install my LAMP stack. I was impressed with the minimalistic install they had installed. It barely took up 500mb let alone the 10GB quota I had. This did have it’s draw backs. It lacked almost everything but the bare essential software. It didn’t even have wget but it did have bash, vi and apt-get. The install was fairly easy with apt-get install. My first problem was Apache 2. Every time I started the service it would bomb out. A check at the logs showed it couldn’t create worker threads. A quick Google and help from Toby got this problem solved by installing a lightweight module using the command:
apt-get install apache2-mpm-prefork
MPM prefork replaced the multi threaded process management with a single thread style used in Apache 1.3.
Once that was done I went on to install PHP 5 and it’s related Apache module. PHP did not give me any trouble. The last thing in the LAMP set up was MySQL. This proved to be a bit of challenge because after it had installed and started things started to get noticeably slower.
CheapVPS uses HyperVM to manage your VPS. It showed that my RAM had shot way above what I was allocated. Even with MySQL service stopped, Apache still took over 124MB of RAM. This was not good. Another round of Googling ensued and found that MySQL provides different configuration files to reduce the memory usage.
I made a backup of the normal my.cnf file and moved a copy of the cnf.small to
/etc/mysql. After starting the service I kept an eye on the memory usage. It increased it over my 128MB but less than 256MB burstable. I did not want to run it in this state and have CheapVPS on my case that I was constantly using more than what I paid for so I requested to upgrade my plan to the next one up which allowed me to have 256MB and 512MB burst RAM. This revelation was shocking and makes me wonder how my old server handled it for all these years.
The upgrade did not cause me to lose my current set up. It was painless but yet another manual process.
Through my set up I did rebuild the VPS when I encountered the problem with Apache. The rebuild was very impressive. It had rebuilt my VM within less than a minute before it was up and running again.
The VPS has fairly fast connections and is hosted in UK (with US as a selectable option as well). I have noticed slow downs in my VM and think I may need to keep watching it for when this happens. I did have everything set up before but it was not rendering the website very well and none of the pictures were loading. A reboot later and it was fine.
I believe the plans offered are reasonable for their price. I’d like to be able to spec up my own VM like what you can do with building a custom computer with Dell and adjust the price of the plan accordingly. CheapVPS do offer discounts for purchasing longer term and the management of payment for the VMs is very easy to do with their web interface.
For all communication to CheapVPS it is done via their ticketing system. This is a nice way of capturing all enquires because you can see previous messages and it was asynchronous. I did not like the way the order had to be processed through this system considering Amazon has an automated process for ordering their web services.
I am looking to make my set up a lot more lean. I am liking the speed and ease of a VPS and might even consider not replacing the server.