Update Jan 2 2014: I migrated away from Dreamhost to a VPS at Rackspace hosting. I have to admin the Rackspace VPS myself (meaning the Linux, Apache, MySQL & PHP environment is my problem to maintain) but the uptime and performance of the small 512 MB RAM VPS I have is fine for my needs.
Dreamhost offers a VPS (Virtual Private Server) solution that is supposed to give you dedicated resources of CPU and memory.
However I have found the service to have some fundamental flaws.
I am not totally sure of how the VServer host limits client resource usage, but from what I can gather, if the VPS guest consumes too much RAM then the host basically terminates some or all the processes in the VPS. So what happens to your website when this happens? Web browsers connecting to your sites get server 500 errors and / or the entire VPS reboots, so instead of getting a slow responding service they get no service at all.
If you look at my VPS’s 5 minute load average, the memory usage is well below the 400MB I have configure it to use. However the spikes in memory usage apparently cause the host VServer to terminate all processes in the context i.e. reboot your VPS.
Dreamhost’s position is that the VPS is consuming large amounts of memory in between when the 5 minute load average was being taken, and that performing a list of steps to reduce resource usage and / or increase the configured RAM may stop the problem. I sometimes shell into my VPS and run
free -m and see that it’s consuming 200 – 300MB over the course of many minutes so I am seriously starting to doubt the accuracy of their graphing in the Dreamhost Panel.
So I have observed that the VPS is consuming more resources than the graph is showing, but still the average I have observed is well below my total RAM.
free -m total used free shared buffers cached Mem: 400 266 133 0 0 59 -/+ buffers/cache: 207 192 Swap: 0 0 0
How could Dreamhost make it’s VPS environment better?
Make the VPS react like a normal computer. When physical RAM/CPU is saturated it just get’s slower, it doesn’t stop.
Another thing I noticed with my VPS is there seems to be no swap file. So even when it hits it’s memory limit it can’t degrade (become slower) by paging to disk. VServer as implemented at Dreamhost has a very inelegant way of managing resource usage.
Dreamhost is providing the VPS option as a way giving it’s customers guaranteed resources, but the way it’s configured means that in order to get an acceptable solution you would have to purchase a machine that requires many more MB of RAM to provide reliable service. Good for Dreamhost’s bottom line, but profoundly frustrating for someone such as me. They do provide a 3rd party auto RAM resizer, I haven’t used it as yet, but I have my doubts that it would be able to adjust the VPS RAM quick enough to allow for the microsecond RAM peaks that is causing the VPS to be terminated.
Of course Dreamhost being Dreamhost – All techie and the like, send a helpful email telling you how you can tune your VPS to stop these problems and I have started to disable the nice-to-have plug-ins on my WordPress install in an attempt to consume less resources. But for goodness sake when I can’t see the evidence with my own eyes (using top and free) that the problem is memory consumption, I am now thinking that their implementation of VServer is flawed.
On another note today my VPS sufferred an unplanned outage Apache failed due to a security patch that was roled out on mass:
Starting apache2-psXXXXX webserver...starting...apache2-psXXXXX-httpd: Syntax error on line 55 of /dh/apache2/apache2-psXXXXX/etc/httpd.conf: Cannot load /dh/apache2/template/lib/modules/mod_security2.so into server: /dh/apache2/template/lib/modules/mod_security2.so: cannot open shared object file: No such file or directory failed. sleeping...Starting apache2-psXXXXX webserver...starting...apache2-psXXXXX-httpd: Syntax error on line 55 of /dh/apache2/apache2-psXXXXX/etc/httpd.conf: Cannot load /dh/apache2/template/lib/modules/mod_security2.so into server: /dh/apache2/template/lib/modules/mod_security2.so: cannot open shared object file: No such file or directory failed. sleeping...Starting apache2-psXXXXX webserver...starting...apache2-psXXXXX-httpd: Syntax error on line 55 of /dh/apache2/apache2-psXXXXX/etc/httpd.conf: Cannot load /dh/apache2/template/lib/modules/mod_security2
Given “The DreamHost New Years Resolution for 2010 is a renewed focus on performance and reliability.” and the fact that the outage was due to a failed security patch and it knocked out pretty much all the VPS’s perhaps they need to read the eight bullet point of their new years resolution.
I’m concerned that they aren’t making the required progress needed to fix the cultural issues that have caused them to have serious and prolonged outages.
Anyway perhaps Dreamhost can move to a different form of Virtualization, still in the open source arena (XEN, KVM, libvirtd) that provides a closer to real computer experience.
Comments from Dreamhost are appreciated if you read this.