Last April I moved this website to a new virtual server with the same hosting provider. Previously I was on an OpenVZ platform. This was such a nightmare for me. I’ll explain the details in a bit. I really liked the hosting company, VPSLink, because of their communication practices, network speed and full-featured control panel. So I stuck with the same company but bought a new server on the Xen virtual platform. Now I’m much happier.

The real problem I had with OpenVZ was the lack of swap space. Swap space is disk space set aside by the operating system to be used as a stand-in for RAM when there is not enough RAM free to run all of your programs. Using swap space has a penalty and that is access time because program data has to be fetched from your hard drive before it can be used. Leased virtual servers typically are quite limited in the amount of RAM you are given so swap space is really a must unless your server will only be running 1-2 applications.

For example, my leased server is a one stop shop for website and email. To perform these tasks it needs these daemons running all of the time:

  • Apache webserver
  • Named/BIND DNS server
  • Spamassassin spam filter
  • Sendmail smtp
  • Dovecot IMAP server
  • Mysql database server

I should have known I was in for trouble when I couldn’t even start Apache + Named at the same time with their default configuration without running out of memory. I followed a few guides on the net and got their footprints trimmed down to a workable state. But the penalty was that now all of my applications were so memory constrained their performance suffered a bit. Furthermore, I was at the threshold of memory usage. Linux would routinely kill my dovecot mail processes to try to reclaim memory, this of course closed IMAP connections which I noticed from a client user perspective. I also could not run yum to update packages without running out of memory.

So one day I got fed up and bought a new server with the same company but the new server was Xen based. I couldn’t be happier now because I have swap space. Most of my applications are still quite fast and my dovecot processes are no longer getting killed.