I’ve met several SPS and MCMS partners and customers over the last few days in Denmark. Denmark is a beautiful country with very nice people. However, to my dismay, it is rainy and cloudy at this very moment – reminds me of good ol’ Seattle.
Anyway, one of the most frequently asked questions this trip has been around performance: how do I build a high performance MCMS site?
Firstly, if you haven’t done so already, I highly recommend looking at the following resources:
Performance Planning and DEployment with CMS 2002: http://msdn.microsoft.com/library/en-us/CMS2002_GB/htm/mcms2002_perf_deploy_abstract_msdn_xugb.asp
HP MCMS 2002 Performance and Capacity Planning Whitepaper: http://h71019.www7.hp.com/ActiveAnswers/Render/1,1027,6646-6-100-225-1,00.htm
And of course, I recommend buying the Content Management Server: A Complete Guide that sells for around $30 on http://www.amazon.com
Ok, with that out of the way, the few things you want to keep in mind (the whitepapers detail this in great depth):
1. Keep the number of objects to 300 per container – this means you don’t want to have 10,000 sub-channels under one channel. Rather, nest them to make sure you limit yourself to 300 objects per container – this includes resource gallery, channels, postings, et cetera. This will impact performance not only if your diff. environments, but also performance with Site Manager – if you have too many channels nested under one, Site Manager performance will not be optimal. So stick to this design!
2. Placeholders per template. Limit the number of placeholders. Take a look at the WPs to see the impact of placeholders vs. performance.
3. Scale-up and Scale-out!
4. Develop in ASP.NET and use output caching as appropriate
5. Sometimes, performance is poor because of the infrastructure – make sure bandwidth isn’t the issue.
6. Memory! Make sure you have enough memory on your web servers… and that the cache is set to a reasonable number.
7. Depending on how dynamic your site is, you may want to consider using ISA to boost performance.
8. On guest-only sites, you can remove an HTTPModule that gives a 10% performance boost. Refer to the MSFT Performance planning online book for more information.
9. Don’t use the Searches API for site search; you should use another Search technology (you can use SPS search or any other search ISV partner listed on the CMS partner site). Searching by GUID is ok (fast), but searching by any other attribute is not going to lead to great performance.