Wednesday, December 5, 2012

Performance Benchmarking during 'Analysis' phase

Microsoft recommended Performance benchmarks can be delivered as a norm to customers however some partner sources may engage in optimization offerings for performance, per customer requests.

Recommended performance benchmarks for Microsoft Dynamics CRM server can be downloaded from here and for Microsoft Dynamics CRM client from here
The links address optimizing and maintaining the different tiers of CRM (application, client, platform, and on the database itself). They also have suggestions for optimizing & maintaining database indexes, IIS, reports, e-mail routers, workflows, etc.,

There are variety of tools available in today's market for measuring CRM components' performance. But even a basic Performance Monitor can be used to measure all kinds of CRM component responses including valuable application ones that can be used to address specific issues, if any. 

Performance monitors - also come in many packages: MS Dynamics CRM Server counters, Outlook Sync Counters, Discovery counters, Platform counters, Service counters, e-mail router counters, async service counters etc., find them here for download.

SQL Server 2008 - introduced new features - Row Compression, Page Compression, Filtered Indexes, Sparse Columns, Encryption have direct relevance to a Dynamics CRM deployment and the Microsoft Dynamics CRM released guidance on how to best leverage these features can be found here

SAN, LUNs, Spindles - It is best practice to ensure that database files, log files, and the TempDB are all on separate LUNs and Spindles. While the SAN administrator may provide separate LUNs, all of the LUNs are on the exact same drive spindle.  This results in an excessive bottleneck at the physical drive level. When carving out LUNs on a SAN, you will want to make sure that they also spread out over separate physical spindles.

Network Topology - Creating smart subnets and routing rules will ensure good network I/O between the application servers and the database and keep stray traffic away. I have seen some blogs recommend that the datacenter have its own subnet that is segregated from the primary user population and that use switches over broadcast routers in the data center. Manage your routing rules to make sure your local data center traffic does not get routed everywhere just to go next space.

.NET application - Then there are several guideliness for engineering & desiging .NET application for performance by the Microsoft patterns & practices, http://msdn.microsoft.com/en-us/library/ff647781.aspx

You should be able to see significant improvement in performance by applying the latest applicable rollups, applicable hotfixes, standard performance benchmarks defined by Microsoft, and engineering your application for performance.

If customers would still like to see improvement after or on the interim, there is always the option of running CRM 2011 Job Editor manually; which allows reschedule of the six maintenance jobs that are scheduled to run daily by the Microsoft Dynamics CRM Asynchronous Processing Service (maintenance).

More information on staggering the run times of these jobs can be found here

Some of these performance benchmarks discussed today may not apply to the 'Analysis' phase, as they can only be conducted on an installed application however I covered them as I started the topic on performance benchmarking...