Picking a Node

Now I know that scaling on linode is amazing, and its really easy to just move up to the next plan. But I was just wondering if anyone is hosting something similar to what I will be and what they use.

Im looking at running a website that gets on average 700,000 page impressions a month. The website is running wordpress with super cache installed so its not constantly accessing the mysql database. Currently its being hosted by webfaction. They've been amazing, but I'm running into problems as the site grows. To upgrade to something that would run the site would cost around $25/mo, now that might be cheaper than what I might need here but how long will that last? That upgrade would be on the brink of another upgrade within a few months.

8 Replies

@tperson:

Im looking at running a website that gets on average 700,000 page impressions a month. The website is running wordpress with super cache installed so its not constantly accessing the mysql database.
That's a hit every 4 seconds, and is far from demanding. How much memory is the whole affair using? Also, are you running Apache?

There's no real "best answer," it's in how well you know your load. I'd consider running the database on a separate machine from your Web server for scalability, because Linode has good private IP support. I don't see any reason why you wouldn't be able to get that in a 540 if it's configured right – and sadly, with Wordpress, that's an inexact science. Moving away from Apache would help you here.

If you have Super Cache && you don't use too many plugins && and your users don't comment heavily, then even a Linode 360 should be able to handle 700,000 pageviews a month with room to spare. Just don't use Apache. Super Cache means a lot of static files, and Apache sucks at serving static files especially when using mod_php.

Look into lighttpd or nginx, find some rewrite rules for those web servers, and run PHP as a FastCGI process with an opcode cacher such as APC or XCache. Also tune MySQL if you can. Tweaking the memory usage just a little bit can have a dramatic effect.

I've been running a custom app which is a lot more complex than Wordpress and which doesn't use anything like Super Cache. It's sitting on a Linode 540, with lighttpd + FastCGI + MySQL (MyISAM). About the same amount of pageviews as you said, maybe with a dozen times more DB activity because of lack of caching. Still got plenty of room to spare.

You should be able to do that with a 360 if you set it up right. Biggest thing would probably be to use nginx (or similar lightweight webserver) to serve all the static content – css, images, etc. Use apache only for the php files.

Somewhat tangentially, I'd just like to mention my method for splitting tasks among Web servers: the pound proxy.

Get your Apache daemon, running your dynamic code, to listen on localhost port 10000. Then have your lightweight webserver listen on localhost port 10001.

You configure pound to listen to the world on port 80, and basically tell it: "any URL that ends with .pl goes to localhost:10000, otherwise localhost:10001" or similar.

This can also be used, for example, to have a single Linode distribute load across several.

@Xan:

Somewhat tangentially…

You can pick your friends, and you can pick your nodes, but you can't pick your friends nodes.

James

You can pick your friends, and you can pick your nose, but you can't eat your friends.

@jed:

That's a hit every 4 seconds, and is far from demanding.

Unfortunately I doubt if visitors hit the site with such regularity.

Thanks for all the info, I'm look into fastcgi and lighttp.

Reply

Please enter an answer
Tips:

You can mention users to notify them: @username

You can use Markdown to format your question. For more examples see the Markdown Cheatsheet.

> I’m a blockquote.

I’m a blockquote.

[I'm a link] (https://www.google.com)

I'm a link

**I am bold** I am bold

*I am italicized* I am italicized

Community Code of Conduct