Dynamics CRM 2011 Quick Optimization Guide
I've put together a high-level list of optimizations for dynamics CRM to centralise information for myself, and thought sharing would be helpful for someone, I'll keep this list updated as I find more information., PLEASE ADD more optimizations tips & tricks to this article.
Authentication
The number of authentication request's and authentication challenges takes valuable seconds deteriorating performance.
- Application Pool Kernel Mode authentication enabled
- Enable Kerberos
- http://quantusdynamics.blogspot.co.uk/2011/12/extreme-performance-with-dynamics-crm.html
- Enable useAppPoolCredentials
- Enable authPersistNonNTLM
- http://quantusdynamics.blogspot.co.uk/2011/12/extreme-performance-with-dynamics-crm.html
Resources:
http://support.microsoft.com/kb/2593042
IIS
- AppPool Recycling
- Configure to recycle after hours.
- WCF Compression - enable compression for the content-type: application/soap+xml; charset=utf8 this content type is used by the Outlook client HTTP requests. Compressing this traffic reduces network traffic and improves communication.
- Enable Dynamic Compression
CRM Registry Keys
A number of tweaks can be done on the CRM side to improve performance.
You can control the size of the Workflow table by deleting completed Workflows with a registry key, this is a nice way to improve performance on the database side, however this can only be applied if you don't need the workflow history.
- Name: AsyncRemoveCompletedWorkflows
- Type: DWORD
- Value: 1
Improve SQL Performance EnableRetrieveMultiple
- Type: DWORD
- Value: 2 (Decimal)
- Fixes a number of issues around the SQL tempdb database and improves performance
- http://support.microsoft.com/kb/2535245
With Microsoft Dynamics CRM 2011 Update Rollup 10 or later, having the HKLM\Software\Microsoft\MSCRM\EnableRetrieveMulitiple Optimization set to 0 can often give better performance than having it set to a value of 2.
http://support.microsoft.com/kb/2710577 - "Update Rollup 10 for Microsoft Dynamics CRM 2011 is available"
See this for more detailed information:
Update Rollup 10 includes performance improvements for retrieving multiple queries and for Quick Find. For more information, see the "Optimizing the Performance of Queries against Large Datasets" and "Optimizing the Performance of Quick Find Queries" sections of the Optimizing and Maintaining the Performance of a Microsoft Dynamics CRM 2011 Server Infrastructure white paper. To download this white paper, go to the following Microsoft Download Center website:
Optimizing and Maintaining the Performance of a Microsoft Dynamics CRM 2011 Server Infrastructure - http://www.microsoft.com/en-us/download/details.aspx?id=27139Disable the email pop-up reminder to speed up load times
- Name: DisablePendingEmailReminder
- Type: DWORD
- Value: 1
Set a preferred Domain Controller to speed up AD checks
- Name: PreferredDC
- Type: String
- Value: DC_Name
There are a number of registry keys targeting different types of performance issues and types of environments, Microsoft is now releasing with each update Roll Up a package named:'tools'.This package contains a tool that can implement a number of updates/optimizations which were previously reserved for registry implementations, this way makes it easier to enable optimizations centrally and avoid creating registry keys across multiple front-end servers.
http://support.microsoft.com/kb/2691237
e.g number of registry keys part of RU6
- DisableSmartMatching
- Default Value – False
- AutoCreateContactOnPromote
- Default Value - True
- BackgroundSendBatchFile
- Default Value – 10
- DisableInactiveRecordFilterForMailMerge
- Default Value - False
- LookupNameMatchesDuringImport
- Default Value - False
- EnableRetrieveMultipleOptimization
- Default Value - 1
- DoNotIgnoreInternalEmailToQueues
- Default Value - False
- SkipSuffixOnKBArticles
- Default Value - False
- SkipGettingRecordCountForPaging
- Default Value – False
Database
- CRM Indexes with DMVs
- http://quantusdynamics.blogspot.co.uk/2012/11/dynamics-crm-database-optimization-with.html
- Optimizing CRM built-in maintenance jobs with Indexes
- http://quantusdynamics.blogspot.co.uk/2013/08/dynamics-crm-2011-optimize-built-in.html
- CRM SQL Maintenance jobs
- Max parallelism set to 1
- Enable Lock Pages in memory forcing SQL queries to run using physical memory
- Enable Read Committed Snapshot isolation to avoid deadlocks
- Maintenance of the Workflow Table AsyncOperationBase
- Maintenance of the Principal Object table PrincipalObjectAccess
- SQL Deadlocks article
Outlook Client
- Outlook client optimization
- http://quantusdynamics.blogspot.co.uk/2013/07/dynamics-crm-2011-outlook-client.html
- Registry Keys
- Increase the CRM Sync options, this depends on your environment.Settings > Email
- Promote emails
- Syncronization
- Manage Outlook filters
- Disable cached pinned-views with a registry key on the client side
- Name: DisableMapiCaching
- Type: DWORD
- Value: 1
Note: Make sure you enable IIS WCF compression from point 2. IIS
Internet Explorer
- Ensure CRM url is added to the local intranet zone
- Authentication Options
- AutoLogon
- Windows Integrated Authentication
- Reset Zoom level for new windows and tabs
- Disk space for temporary internet files
- 250MB
- Increase IE connections to the server with Registry Keys
Email Router
- Installing email router on multiple servers
- Load Balance Email router
- Scalling Email router with Business Units
- [PFE] - Email router scalability and availability
- Reduce the configuration update period
- Open the Microsoft.Crm.Tools.EmailAgent.xml in notepad and edit the following line to 86400000 this will set the email router to update the user list once a day, this is important if you have a large number of users in your environment.
- <configupdateperiod>86400000</configupdateperiod>
- Open the Microsoft.Crm.Tools.EmailAgent.xml in notepad and edit the following line to 86400000 this will set the email router to update the user list once a day, this is important if you have a large number of users in your environment.
- Increase the number of emails to process on each batch
- On the same file as above you need to add an extra section to override some of the settings, this will stay included on the <systemconfiguration> section:</systemconfiguration>
- <provideroverrides>
- <cachecapacity>1024 </cachecapacity>
- <pendingstatusdelay>300000 </pendingstatusdelay>
- <sendingstatusdelay>1800000 </sendingstatusdelay>
- <maximumdeliveryattempts>10 </maximumdeliveryattempts>
- <retrievemessagecount>10 </retrievemessagecount>
- <batchsize>50 </batchsize>
- <requestbatchsize>50 </requestbatchsize>
- </provideroverrides>
- On the same file as above you need to add an extra section to override some of the settings, this will stay included on the <systemconfiguration> section:</systemconfiguration>
for more information on how to use <proveroverrides> </proveroverrides> go to: http://support.microsoft.com/kb/972150
If you have more than 5000 users in your environment you will need to increase email router limits on how many users to load from CRM by setting MaxRowsPerPage on the front-end server:
- Name: MaxRowsPerPage
- Type: DWORD
- Value: Number_of_rows (Decimal)
Monitoring
- Use SSIS to monitor pending emails
- http://quantusdynamics.blogspot.co.uk/2013/07/dynamics-crm-2011-using-ssis-to-monitor.htm
Resources
- [CRM 2011] Optimizing and Maintaining the Performance of a Microsoft Dynamics CRM 2011 Server Infrastructure. http://www.microsoft.com/en-us/download/details.aspx?id=27139
- [CRM 2011] Optimizing and Maintaining Client Performance for Microsoft Dynamics CRM 2011 and CRM Online. http://www.microsoft.com/en-us/download/details.aspx?id=23261
- [CRM 4][NB] Security and Authentication in Microsoft Dynamics CRM: Connectivity and Firewall Port Requirements in On-Premise Deployments. http://www.microsoft.com/en-us/download/details.aspx?id=12774
- [CRM4][NB] Security and Authentication in Microsoft Dynamics CRM: The Microsoft Dynamics CRM Security Model. http://www.microsoft.com/en-gb/download/details.aspx?id=12108
- [CRM4] Outlook Synchronization in Microsoft Dynamics CRM 4.0. http://www.microsoft.com/en-us/download/details.aspx?id=17594
- [CRM4] [NB] Offline and Online Synchronization in Microsoft Dynamics CRM. http://www.microsoft.com/en-us/download/details.aspx?id=2737
- [CRM4] Sharing Data across Microsoft Dynamics CRM Deployments. http://www.microsoft.com/en-us/download/details.aspx?id=10151
- [CRM4] Optimizing and Maintaining Microsoft Dynamics CRM 4.0. http://www.microsoft.com/en-us/download/details.aspx?id=3997
- [CRM2011] [Email Router] How to configure the Microsoft Dynamics CRM on-premises and Microsoft Dynamics CRM Online E-mail Router in different deployment scenarios. http://www.microsoft.com/en-us/download/details.aspx?id=21445
- [CRM 2011] Deploying Microsoft Dynamics CRM 2011 and CRM Online Solutions from Development through Test and Production Environments. http://www.microsoft.com/en-us/download/details.aspx?id=27824