Kentico CMS 5.0 Performance report

   —   
It has taken a significant amount of time but the performance report for Kentico CMS 5.0 is finally here.
Hi there,

We finally finished an official version of the performance report for Kentico CMS 5.0 that summarizes the most important information about the Kentico CMS Performance.

Do not expect anything in size of a book, we wanted to be brief and directly hit the main points, since many of additional aspects depend on the specific web sites, so it wouldn't be as general then.

You can download the report here: KenticoCMS_5-0_Performance.pdf (7.8 MB) 

In addition to the comments in the report, here are my personal ones and the recommendations:
  • As you can see, the full page caching (output caching) is the best what you can do if your content tends to be static, use it everywhere you can.
  • Kentico CMS does not use standard ASP.NET output caching by default as some other CMSes. We use our own solution since version 4.1 which if far more efficient (12k RPS instead of about 7k what would be with the standard one), that is why the performance of Kentico comes very close to a static page.
  • Caching (any) always brings improvements and if you use it, you can have only single DB server for entire web farm, because the SQL does not need to serve too much data.
  • It is always better to store files in the file system and cache them.
  • No matter what web site you build and with which CMS, if the web site will be heavily loaded, you need to take care about your database indexes and statistics, there is no way how to get this out of the box from any product. What we give you is the default configuration which is a good fit for typical web sites, but once you add your custom structure or scale the project up, you always need to review it.
What you can expect in future from performance and scalability perspective (I will be definitely commenting this out in my next blog posts, so be patient)
  • 5.5 has optimized Indexes and Views so it produces close to half CPU load to the database than 5.0, so you will be able to serve more web farm servers from a single DB server. This also results in about 20-30% performance increase based on particular situation.
  • 5.5 comes with even better cache management and introduces new ways how to reduce contention, so even if the cache is empty and the web site process starts under very heavy load, it handles it very well
  • With 5.5, there will be possible to add custom output cache dependencies, so you will be able to use it even on content that needs to be updated right away when changed.
  • 5.5 will be released at the beginning of the next week, so look forward to it!
And that is pretty much all for now.

See you next time ...
Share this article on   LinkedIn

Martin Hejtmanek

Hi, I am the CTO of Kentico and I will be constantly providing you the information about current development process and other interesting technical things you might want to know about Kentico.

Comments

Martin Hejtmanek commented on

Hi Evgeny,

You basically deal with it just like with any other ASP.NET application. You basically have a load balancer (HW or SW), standard web sites on each of the server, configured web farm synchronization in Kentico CMS so the application memory and files in file system synchronize. And then you have the choice to use single database, in that case you just set all servers to point to the same database, or use the Merge replication on the SQL server side and set the connection strings on each of the servers to the appropriate database. More info on how to set up the replication can be found here: http://devnet.kentico.com/docs/devguide/index.html?db_replication_overview.htm

There will be details about various typical configurations and topology in the Kentico Deliver Now! methodology we are preparing but it will be quite rich so it takes some time to prepare it. If you have some questions in the meantime, just send them to our support, and we will elaborate more on them.

evgeny commented on

Excellent report, thanks Martin. I have a question though. Please give me some general info on how do you configure Kentico (and Windows if required) if you use multi web server (you reference that as web farm) and multi SQL server approaches.