In working with CRM Online customers, performance has been and continues to be an area of focus. I regularly have conversations with customers on performance with CRM Online and how to approach the topic and the different areas that impact it. I'll cover some of the important parts of finding the cause of your performance issue and then how to address them.
Where do you start
One of the biggest hurdles with performance issues is figuring out where to start.
The first point I always bring up is that performance is subjective. What is acceptable for one user is not for another user. The same can be said between two customers.
Find out from your users what they view as an acceptable level of performance in CRM Online.
- You'll need to make sure that the users' expectations are realistic. If your end users state the need to have views and forms to open in sub second time, their expectations need to be adjusted. A basic installation with minimal customization with all of the performance tuning completed will take at least a couple of seconds to open/close records and views.
- When users are defining their levels of performance you'll need to have them specify what parts of the application and what actions they are performing as times these will vary. For example: Opening the My Accounts View, or Saving a Lead Record.
Once you have determined what is slow and what an acceptable level of performance is, you'll need to measure your current times to get a baseline. This way as changes are made to improve performance you can see how much of an impact is made.
I use Fiddler to measure performance and page load times.
- Fiddler is a tool that monitors HTTP traffic. It will give the time it takes for the client machine to receive the various parts of the page that is being rendered on the client machine.
- You will want to go into Fiddler and click on Tools | Fiddler Options |HTTPS | check the 'Capture HTTPS CONNECTs' and 'Decrypt HTTPS traffic' check boxes to see the HTTPS traffic for the various parts of a page loading. You will have two popup windows, click 'Yes' on both to install the certificate for Fiddler. When you are done using Fiddler on the client machine, make sure you remove the certificates for decrypting the traffic, go into the Tools | Fiddler Options |HTTPS | uncheck 'Capture HTTPS CONNECTs' and 'Decrypt HTTPS traffic' and then click on the 'Remove Interception Certificates' button. Click yes on the pop up and click Ok.
- Note that Fiddler does add some overhead on to the page loads while you are measuring performance, so when a user is actually in CRM performing the same actions on that machine without Fiddler running it will be faster.
One additional point is that CRM Online takes advantage of 'warm' page loads. When you are measuring performance, make sure you are doing so with 'warm' page loads.
- A 'warm' page load would be a subsequent open/view of a page/record/view. In other words, if you delete your Internet Explorer cache, then open an Account record in CRM, this would be a 'cold' page load. If you were to close that Account record, and open a different Account record, that would be a 'warm' page load.
- CRM Online caches files on the client to speed up processes in CRM. With a 'cold' page load, we would not have any of the images, files, etc. that make up web page cached on the client machine.
The last part I like to check with performance is who the performance issue affects.
- Are there only certain users that this issue affects?
How are those users different from other users that are not having performance issues?
What's the location of the users that are affected?
- Are those users are in a different geographic location?
- Do those users have the same type of hardware as other users?
- Do those users have the same type of software as other users?
Once you've defined the performance issue you'll need to start looking into the different areas that impact performance.
- Machine Hardware
- Machine Software
- Network Connectivity
Outlook Client Configuration
Hardware and Software
The first area to look into that affects performance is the client machine's hardware and software.
- Verify the client machine meets the minimum hardware requirements, and ideally meets or exceeds the recommendations.
Verify the machine is running Internet Explorer 9 or 10, or at least Internet Explorer 8.
- The Java Script rendering has been vastly improved in Internet Explorer 9/10 and provides the best performance experience.
Configure your Internet Explorer Settings for optimal performance.
- In Internet Explorer in the menu bar go to Tools | Internet Options | General Tab | under the Browsing History area, verify that the checkbox for 'Delete browsing history on exit' is unchecked.
While still in the General tab click on Settings under the Browsing history area.
- Select 'Automatically' under the 'Check for newer versions of stored pages'
- Set the 'Disk space to use' to 250 MB
- In Internet Explorer in the menu bar go to click on Page | Zoom | select 100%
- Disable other IE addins and test against your baseline. We've see addins that have added additional overhead.
- Check what other programs are running on the machine. These other programs could be starving the machine of resources which could help with the performance of CRM.
Find out what virus scanning and security packages are running on the machine.
- Disable the scanning on the CRM Website (*.crm.dynamics.com)
- Consider excluding file directories from scanning, in the case of the Outlook Client the installation folder for CRM, ie. C:Program FilesMicrosoft Dynamics CRM
Set the Power Settings on the client machine to High Performance.
- Go to Start | Control Panel | Power Options | Advanced Power Settings | and select High Performance.
I'll continue this topic next week with Part 2 of Microsoft CRM Online Performance Tips & Tricks, which will include the topics of: Network Connectivity, Customizations, and Outlook Client Configuration.