Spring Sale! Save 30% on all books w/ code: PLANET24
Web Dev + WordPress + Security

More Server Mayhem

[ Server Mayhem ] 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?

About the Author
Jeff Starr = Web Developer. Book Author. Secretly Important.
Digging Into WordPress: Take your WordPress skills to the next level.

27 responses to “More Server Mayhem”

  1. Hi Jeff,

    Thanks for clearing that up for me – that makes sense.

  2. DeepFreeze 2007/12/26 9:47 am

    I thought that WordPress was less troublesome and less resource consuming. But after seeing what you are going through I think that i SHOULD stick with Blogger.com.

  3. @Stephen:

    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.

  4. DeepFreeze 2007/12/27 2:03 am

    @15 – Perishable:

    Hmm.. Will have to try WordPress someday then. Just Wish that Money would grow on trees

  5. Ron Del Rosario 2010/02/20 10:32 am

    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.

    Ron Del Rosario

  6. Sometimes it just feels good just to let it out and rant a little bit ;)

    Thanks for sharing the story — it’s good to know I’m not alone :)

  7. francis bers 2010/06/18 7:44 am

    Had the same experience maintaining a wordpress installed site!

    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?

    Currently, im testing Spry.com of their VPs if it will work fine.

    Any VPS suggestions is highly appreciated.

    Thanks

  8. Jeff Starr 2010/06/29 1:51 am

    Hi francis,

    I feel your pain on the hosting scene.

    Here is a post from Eric Meyer that includes some great hosting suggestions in the comment thread: http://bit.ly/dho7Dy

    Cheers

  9. More often than not, it’s the self-imposed WordPress limit of 32MB that gets in the way and not necessarily the server, whether VPS, dedicated or shared hosting.

    A good place to start: http://codex.wordpress.org/Editing_wp-config.php

    Best,
    Bob

  10. Jeff Starr 2011/01/10 6:48 pm

    Hey Bob,

    Thanks for the comment! This post is over 3 years old, and since then I’ve got the wp-config.php figured out. Here are some of my posts on the topic:

    Also, you can override/set WP’s default memory limit to whatever you would like using this in wp-config.php:

    define('WP_MEMORY_LIMIT', '64M');

    Cheers!

  11. Oh…

    Didn’t catch the date… I clicked on a link in a recent feed item from PerishablePress.com…

    Sorry…

  12. No probs – didn’t mean to sound all “and and” in my reply ;)

Comments are closed for this post. Something to add? Let me know.
Welcome
Perishable Press is operated by Jeff Starr, a professional web developer and book author with two decades of experience. Here you will find posts about web development, WordPress, security, and more »
Banhammer: Protect your WordPress site against threats.
Thoughts
I live right next door to the absolute loudest car in town. And the owner loves to drive it.
8G Firewall now out of beta testing, ready for use on production sites.
It's all about that ad revenue baby.
Note to self: encrypting 500 GB of data on my iMac takes around 8 hours.
Getting back into things after a bit of a break. Currently 7° F outside. Chillz.
2024 is going to make 2020 look like a vacation. Prepare accordingly.
First snow of the year :)
Newsletter
Get news, updates, deals & tips via email.
Email kept private. Easy unsubscribe anytime.