Umbracians for Unicef - the friendly fundraising
In the spirit of holidays and humanity, we started a fundraising for Unicef. You won't believe what we could change if every visitor on Our Umbraco donated a dollar or euro. Click and find out!
For a large project with a goal of around 200K hits per hour, does anyone have any recommendations for the number of cores that would be needed to support a high load?
There is no simple answer to this question as it will depend greatly on how the site has been constructed.
Umbraco sites can be constructed in many different ways, all of which could have an effect on performance. For example XSLT vs Razor vs .Net User controls. Using Examine as a content/media cache for extra performance.
Axure instances are available in set sizes, which not only dictate the number of cores but also the ammount of RAM available. RAM is important as Umbraco stores its content in the XML cache in memory so a lack of memory will starve that area of your application.
The only real way you'll be able to tell how many you'll need is to load test against your site. It sounds as if 200k hits per hour is a goal rather than what you will be startng with, so maybe look at an autoscaler. This will allow you to set the instances to scale with the load, I've used AzureWatch in the past and that's worked very well. http://www.paraleap.com/
If you are using the Umbraco Accelerator you'll find it's easier to scale by adding instance rather than increasing the sizes of the instance as you go.
Thanks for the response, I appreciate it. And thanks for the link to paraleap.com, I hadn't seen that before. We are doing some load testing on our current setup to at least be fairly confident that things will go ok when we turn it on. However, I know experience counts here.
What size cores generally work best with Umbraco? Any thoughts there?
We are using all XSLT/Razor User Controls and implementing heavy caching to help reduce the processing load.
The site doesn't have a ton of content, but the key piece is user generated content that is read via XSLT Extensions (separate data tables). The actual writing/saving part is a standard ASP.NET Azure site that is separate from the Umbraco instance. And the user generated content is stored in a different container than Umbraco. That should help reduce the overall load as well I hope.
Are things like GZIP compression or cache-headers helpful in Azure (we are using the Umbraco Azure Accelerator)? Anything else we should look at that is not obvious?