Just when I thought I had finally solved my web-hosting woes by transferring to a virtual private server, I am slapped in the face by the cold realities of server memory limitations. Apparently, WordPress-powered sites are extremely resource-intensive, requiring insane amounts of random access memory (RAM), something which does not concern those of us working from shared hosting accounts.
On a shared server, system resources are shared among the various accounts that reside on a particular server. When one of these sites takes a hit and requires extra bandwidth, it “borrows” it from the total amount of bandwidth available for the other shared sites, leaving them with limited memory and other server resources. This is one of the reasons that shared hosting can suck so badly at times. If you happen to be located on a server that hosts a few resource-intensive or unstable sites, chances are high that your site will not perform as well as it might if its neighbors weren’t such stinking pigs.
Destroyer of memory
With shared servers, it is this sharing of server memory that enables WordPress-powered sites to enjoy their resource-hogging plugins without too many issues. Sure, sharing memory can sometimes be a drain when you are fighting with hundreds of other sites for that extra megabyte of precious memory, but at least your site doesn’t shut down if you happen to exceed the predefined memory limits. This is exactly what happened after I setup Perishable Press on my new virtual private server at WiredTree. To be honest, since this was my first move away from shared hosting, I really had no idea how much memory my site was using. Turns out that just this one site — with its reduced number of plugins and optimized content — was enough to gobble up every drop of the 256 MB of allocated RAM without even blinking. It was like, okay, site now online — oops, not any more — you just exceeded your memory limits and crashed Apache. Again. Ugh.
This was frustrating on many levels. First, I had just spent an entire week getting everything setup and transferred over to the new server. Second, I managed to eat up all the available bandwidth with just one site, and that doesn’t include my installation of Mint (which is resource hungry in and of itself). Third, I realized that there was just no way that the virtual private server with its paltry 256 MB of memory was going to house my entire army of sites — let alone just one of them. Nonetheless, I was desperate to make the switch work — I really wanted more control, root access, greater stability, etc. — and was willing to pay more each month while doing everything possible to make it work. So I called WiredTree..
To their credit, the support team at WiredTree is phenomenal, rivaling that of A Small Orange any day of the week. So, as I embarked on my mission to significantly reduce the amount of memory used by Perishable Press, I was in good hands. After explaining my situation and frustration with tech support, my suspicions were confirmed: WordPress used to be a high-performance piece of software, but those days are long gone. Now, a WordPress-powered site — especially with a few of its more infamous plugins — is an absolute resource-guzzling nightmare. Even so, I enjoy the functionality that WordPress provides, and was determined to make it work, dammit.
Reducing memory usage
To make a long story short(er), here are a few of the steps that I took in order to lower the amount of memory required by Perishable Press (keep in mind that I needed a serious reduction in memory usage to make things work on the new server):
- Disabled Popularity Contest plugin
- Disabled Top 10/Hit Counter plugin
- Disabled Bad Behavior plugin
- Disabled Nofollow Free plugin
- Disabled Download Counter plugin
- Disabled Get Weather plugin
- Disabled BlogStats PCC plugin
- Disabled Authenticate plugin
- Disabled Simple Tags plugin
- Eliminated mod_gzip compression
- Enabled Caching of content
- Upgraded to Apache 2
- Cut off my left testicle
Needless to say, after the butchering, I was left with the most rudimentary of WordPress-powered sites. Only the basics: stuff like Akismet, Feed Redirect (or whatever it’s called), and a handful of other run-once and/or admin-only plugins. The result? Memory use dropped by around ten percent — nowhere near enough to justify trying to transfer another site or even enable Mint. Such a move would have crashed ‘ol Apache for sure. So, at this point, I had a decision to make: strip every one of my sites/projects down to the utter core and forever forget about any bells and whistles (or even secondary functionality), or return to the shared-server scene and continue where I left off..
So, it is with great insanity that I transfer Perishable Press back to A Small Orange, which, despite its recent performance inconsistencies, is for now a far better solution given my site development and web design goals. Moral of the story: if you are thinking about transferring from a shared server to a virtual private server, make sure you understand how much memory you are going to need before fighting a week-long hellish battle beating your bloody head against the virtual walls.
In closing, I would just like to add my two cents about resource allocation on a majority of currently available VPS plans: other than for marketing purposes, there seems to be absolutely no point whatsoever in providing customers with hundreds of gigabytes of disk space and bandwidth while limiting the available memory to 256 or even 512 MB. In my mind, it seems impossible to use anywhere near that amount of bandwidth if you are only able to run one or maybe two averagely pimped websites without crashing the server, over and over and over again.. But then again, I am no expert on the subject.. — what do you think about it?