Help Required! - Website expecting big increase in traffic
We require some guidance in configuring/designing our clients site/node currently on a Linode 4096 to handle the expected increase in traffic to occur in 1 weeks time with an initial spike and then and steady climb. We are expecting between 100K and 160K ++ users per month with a required concurrent load of approx 35K users. They are expecting a 400% increase from their current traffic…
The site currently built on WordPress, has a separate forum that could be separated out onto another node, and the download package per client is to increase from approx 3-4mb to 12mb. It is possible the payment section could be separated out as well.
To also assist we could hook into a suitable CDN provider for caching.
I am keen for some guidance from experienced 'Linoder's' that could tell me how to actually do this so the clients site does not crash.
ps.. just to say, the Linode service has been fabulous and not a peep of downtime since coming over… the clients site was crashing every 10 minutes with the previous provider : )
I look forward to any input!
Cheers..
11 Replies
1) put database on different linode
2) wordpress caching plugins
3) CloudFlare and associated plugin
4) Put static content on a separate server (or CDN)
Next step after that is to go properly multi-server, which is beyond the advice I can give, since it has a whole lot of other implications for wordpress. That said, you can get pretty damned far with two or three big beefy single-purpose linodes without getting into a multi-server type setup. Splitting off the database is easy, because there's still just one web server and one database server. Splitting the web server so you have multiple copies of the site is much harder.
jebblue - this sounds like a great thing to do however given the current use often hits the the ceiling on the allowed 400% cpu useage it would suggest that if there is a 400% increase in traffic and users then this would not suffice. But could certainly be used to test a new configuration.
obs - Currently it is set up on Centos5.6 64Bit with Cpanel/WHM. I am not technically apt enough to understand the config you are suggesting but it sounds very manual and would require a lot of fiddling around and monitoring… but I may be wrong. My server manager would likely understand it more.
Guspaz - This is the sort of thing I was thinking of but need to ensure it can be done and not crash. We currently have the CloudFlare plugin with Cpanel but I was looking to go with someone like CacheFly so we can get a commission, but once again I have not used them before and do not know how to "Put static content on a separate server (or CDN)" as you say i.e. isolate the content. Also I notice you did not mention the use of the Linode load balancers if more than 1 server is used?
OVERALL
If a solution can be found I we could ask the client to pay for the extra help to sort it out.
Timing is pretty critical and would need this sorted by the end of the week. I like the idea of breaking the site up onto servers as it makes it more resilient than just shoving it into an elastic cloud.
PARTS TO THE SITE
At a guess the site could be broken into main site, forum, payment gateway? but I do not understand how to actually break it up.
I look forward to hear more!!
Cheers
thanks for your response… sorry if I am being unclear.
There is nothing wrong with the server at present. However, starting next week the owners are going through a very intensive marketing campaign to attract new users and given the response from previous marketing campaigns they are expecting to have what is currently 40K registered users increase to 100-160K registered users, and from 200 concurrent users to 35K concurrent users.
Currently the CPU hangs around 150% but when they market it goes to 300% + and occasionally hits the full 400% cpu. The marketing campaign planned for next week is significantly larger, than previously done. Also the size of the files that new clients download is increasing from approx 3-4mb to 12mb.
So… I want to be prepared
I would hate to have to pack up and move simply because I could not get a solid design support/consultant using Linode.
Is there a job posting section to this forum to speed this up?
Thanks in advance
@OnthegOinOz:
I would hate to have to pack up and move simply because I could not get a solid design support/consultant using Linode.
Yeah, that whole Linode is a UNMANAGED VPS service is oh so confusing.
In terms of my not mentioning Linode's load balancing, I didn't for two reasons:
1) It would only be required if you had multiple front-end servers, which was the "much harder" part that I mentioned, one that I have no experience with
2) They have a maximum concurrent user limit of 10k, if memory serves, which sounds like it may not be well suited for your uses. There are also other techniques, such as DNS round robin, or a simple redirect (a linode sits on
One good thing to take a look at immediately might be, where is that current CPU use coming from? As in, if you log into the box and run top, what processes are using the CPU time? What's the box's disk IO like? What does the memory usage (in terms of total free/cached, total in use, total swapped, what processes are using how much, etc) look like?
@Guspaz:
2) They have a maximum concurrent user limit of 10k, if memory serves, which sounds like it may not be well suited for your uses. There are also other techniques, such as DNS round robin, or a simple redirect (a linode sits on
http://www.foo.com and redirects users to www1.foo.com, www2.foo.com, etc), or a reverse proxy like Varnish, etc.
They have a maximum concurrent connection limit of 10k. If connections take less than a second – and I believe NodeBalancers disable HTTP keep-alive -- you can fit in a lot more. Or you can get more than one NB and DNS round-robin them.