If you have ever analyzed network traffic you would notice that IIS will automatically compress many types of content including images, jscript, and css pages. Compression is used improve the network performance by decreasing the number of round trips required to transfer data from the server to the client machine.
The CRM 2011 Outlook client uses WCF to retrieve data from the server. By default IIS will not compress WCF responses which have a mimeType of ‘application/soap+xml;charset=utf-8′. Since the WCF traffic is not compressed you may notice there is increased network traffic or performance is degraded when comparing CRM 2011 to CRM 4.0. Typically I have seen a 30-40% reduction in response size once compression is enabled for the WCF responses. However once SSL is enabled on the CRM website the compression can reduce the size by 80-90%.
Below is a chart showing response size before and after compression is enabled within IIS. This is captured from a non-customized CRM 2011 environment with the sample data loaded. This shows improvements when loading the various views in the Outlook client.
|
No Compression |
Compression |
Compression + SSL |
Activities View |
Bytes Sent: 82,234 |
Bytes Received: 971,139 |
|
Bytes Sent: 82,234 |
Bytes Received: 722,786 |
|
Bytes Sent: 53,249 |
Bytes Received: 36,658 |
|
Accounts View |
Bytes Sent: 105,084 |
Bytes Received: 219,102 |
|
Bytes Sent: 105,084 |
Bytes Received: 149,424 |
|
Bytes Sent: 67,586 |
Bytes Received: 25,837 |
|
Contacts View |
Bytes Sent: 78,286 |
Bytes Received: 177,504 |
|
Bytes Sent: 78,286 |
Bytes Received: 122,090 |
|
Bytes Sent: 50,283 |
Bytes Received: 19,791 |
|
Leads View |
Bytes Sent: 78,286 |
Bytes Received: 202,589 |
|
Bytes Sent: 78,286 |
Bytes Received: 141,021 |
|
Bytes Sent: 50,274 |
Bytes Received: 19,769 |
|
How to Enable WCF compression
You may enable compression either by using a command line or by manually modifying the ApplicationHost.config file on the CRM Server. Below are the steps for each process.
Note: You may notice an increase in CPU utilization with compression enabled so be sure to monitor CPU accordingly.
Enable compression using a command line.
a. Open the Command Prompt on the CRM Server.
b. Run the following command:
%SYSTEMROOT%\system32\inetsrv\appcmd.exe set config -section:system.webServer/httpCompression /+”dynamicTypes.[mimeType='application/soap%u002bxml; charset=utf-8',enabled='true']” /commit:apphost
c. Reset IIS for the setting to take effect.
Enable compression by manually updating the ApplicationHost.Config
a. On the CRM Server Navigate to:C:\Windows\System32\Inetsrv\Config\applicationHost.config and open it with notepad.
b. Search for the Section:“<dynamicTypes>” and in that section you should fine an entry that looks like this:
<add mimeType=”application/x-javascript” enabled=”true” />
c. Below that, add the following line:
<add mimeType=”application/soap+xml; charset=utf-8″ enabled=”true”/>
d. Save the file and reset IIS for the setting to take effect.
Note: For additional information about configuring HTTP compression, on TechNet, see the article Configuring HTTP Compression in IIS 7 at: http://technet.microsoft.com/en-us/library/cc771003(WS.10).aspx
The Optimizing and Maintaining the Performance of a Microsoft Dynamics CRM 2011 Server Infrastructure whitepaper also includes a section on HTTP compression .
Sourced From: Jeremy Morlock Microsoft Premier Field Engineer
Share on Facebook