.NET Geeks
-Unleash Your Inner Geek!!!

Performance & Tuning Guidelines for MSCMS 2002.

I have been asked many times “our CMS site is running a little (or a lot) slow, is there anything we can do to speed it up?” The answer to this common question is yes. There are several tuning guidelines you can follow to make sure you are achieving maximum performance from your MSCMS system.

If you are restricted by the number of processors, add more processors. This has an impact on not only your MSCMS performance, but the .NET Framework as well.

Memory can be another restriction. If you do not have enough memory in your machine then you may see a sluggish response time and may want to increase the amount of system memory you have. This also has an impact on the performance of the .NET Framework as well. The amount of memory you have directly relates to the amount of objects MSCMS can cache.

Make sure you are on the latest service pack(s) and .NET Framework. Since MSCMS is a .NET application this will allow you to take advantage of other tuned base framework components and leverage their improvements and performance gains.

Please see Sefan Gossner’s  Blog on MSCMS and the .NET Framework 2.0 at http://blogs.technet.com/stefan_gossner/archive/2005/11/10/414147.aspx

There are sever caching options you can look at to improve performance. I will not go into to all of these now but they are.               

  • ASP.NET Output Cache
  • Fragment Cache
  • Disk Cache

And Node Caching is a good way to get some performance out of your MSCMS system. From your MSCMS database you will want to execute this SQL expression. This will calculate the number you need to set the node caching option in the SCA to. 

SELECT

     count(*)

FROM

     node WITH (NOLOCK)

WHERE

     (datediff(hour, archivedwhen, getdate()) < 1 OR archivedwhen IS null)

AND  (deletedwhen is NULL) AND datediff(hour, expirydate, getdate()) < 1

AND  (datediff(hour, effectivedate, getdate()) > 1 OR effectivedate IS null) AND  (datediff(hour, approvedwhen, getdate()) > 1 OR (type >= 65535

AND  approvedwhen is null))

Note: Microsoft strongly recommends that you set your node cache to at least the number that is returned by this script. If constant authoring and updates occur on your site, increase the node cache size accordingly.

There are limitations, for example Microsoft states that if the number returned is more than 35,000 you could possibly have memory issues if you do not have the sufficient amount of memory, and some pieces of you application may not be cached.

See Article 318976 at http://support.microsoft.com/kb/318976/ for a more in depth look at node caching within MSCMS.

Also see the Performance Planning and Deployment with Content Management Server 2002 at http://www.microsoft.com/downloads/details.aspx?FamilyID=e1f50824-c281-4fd6-966c-ac4c68106010&DisplayLang=en for an view detailed and in depth look at how to plan and tune a MSCMS 2002 system.

End Transmission


Posted Aug 28 2006, 02:49 PM by cooperfdiv
Filed under: , ,
Powered by Community Server (Non-Commercial Edition), by Telligent Systems