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.

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.

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?

Glad to be of service! Hopefully, others will find the information useful as well ;)

@DeepFreeze:

Hey, don’t get me wrong — under the right conditions, WordPress is a great piece of software. On a decent shared server, WordPress is ideal for many bloggers, however, if you are new to private servers, where you are responsible for your own resource-usage, you may end up kicking yourself for not choosing an alternate path.

Sorry for posting in a 3 year old post, but, I know exactly how you feel!

My WordPress site was suffering so bad in the shared hosting environment due to traffic load and so I thought, “Why not take the next step and invest in a VPS?”

So wrong…

I went and canvassed for a good VPS and eventually found one and dedicated 3 days studying and transferring my site to the VPS.

Day 4 arrives and my site is up, running and propagated. I celebrate, only to find out a few minutes later that my site is a MASSIVE CPU hog (memory was ok though)!

I ask for assistance from the friendly and supportive VPS staff and they turn eAccelerator on and I do a massive plugin purge.

After all that I checked the CPU load and it still gobbled up precious CPU like crazy! :(

So after all the sleepness nights on the VPS, I returned my site to my shared hosting. :(

I eventually found what caused the CPU (and possibly the memory issue for you) problem in WordPress. When we use a custom permalink structure (pretty permas), WordPress queries the .htaccess directive for the permalink A LOT! There were test results in the WordPress forums confirming the problem. When the permalink was left to default, the average CPU load was about 10-20% which is pretty acceptable. But when a custom perma is used, average CPU load shot up to 50-80%. But the we can’t use the default right? Who wants a link that looks like this: site.com/?p=34334 right?

Thanks for the post though. I really enjoyed reading this and the previous post detailing your move to VPS and back.

True the WP uses abit of resources more than than normal static site however it proves its framework pretty much reliable compared to other CMS apps.

Now, im stuck with site5.com which poorly handles spike and outages. They’ll kill your site immediately without any reconsideration if you can disable your index first and make post assessment what you can do about it first.

Going to their VPS is like they seem to drive/lead you to buy their VPS upgrades for your site… is it intentional?

Projects

About the site

Perishable Press is the work of Jeff Starr, professional developer, designer, author, and publisher with over 10 years of experience.
Check out some of Jeff's books and projects, follow on Twitter, or learn more »

Fun fact: Perishable Press has been online since 2005, and features over 800 articles and more than 11,000 comments. More stats »