Orchard performance question?

Topics: Administration, Core, General
Mar 19, 2013 at 9:23 PM
I am looking for a light weight CMS to host a small site (~20 pages) but incredibly high volume (30,000,000 hits an hour during peak usage)..

Before I roll my own CMS that publish to static HTML, I would like to consider a .NET platform...

What kind of hardware & challenges will I face, scaling Orchard to handle that kind of load?

Does orchard do a lot of page cachcing and content caching so my DB won't be taxed?

How does it handle being in a HA environment with multiple instances?

How many concurrent connections can I expect to support on a single Orchard instance?

Thanks all :-)
Josh
Mar 19, 2013 at 10:04 PM
If the pages are static you should be able to do this with Orchard. You'll have to make sure you have a decent web server or servers.

Look at the Contrib.Caching module, which will let you configure your static pages to use IIS kernel caching, which should be able to serve pages VERY fast.

There is also a db level caching at the Nhibernate level.

You can also manually cache data through the caching API's Orchard has. I've used a combo of all three and get very good performance in my site. Most of my pages aren't static so I take advantage of the nhibernate and custom caching to reduce the load on the db as much as possible.

Orchard handles web farm / HA environments fine, it's pretty much built with that in mind.

I don't know how many concurrent connections you'll be able to expect. Maybe someone else has measured this. You should be able to achieve the performance you want pretty cheaply and easily if you use Azure and deploy to 2+ web servers (many options: web roles, azure websites instances), and configure caching. If all your pages are static you will probably not hit the db at all and 2 small or medium-ish web instances could suffice. It would be up to you to measure exactly what you need to reach your goals. If your traffic varies, say you are normally at 5,000 hits an hour, but you go up to 30,000,000 when you have certain promos, you could take advantage of Azure scaling to increase the web instances when you know you will need it. I believe there is at least one 3rd party solution that can help automate the scaling for you.
Coordinator
Mar 20, 2013 at 12:03 AM
Configure Contrib.Cache with a Max-Age settings, and you can't have faster on IIS.
But maybe you could also benefit from having only one app server with orchard, and several front end proxies using IIS ARR.