The MS CRM Engineering Excellence (E2) and Dynamics Premier Field Engineering (PFE) teams recently collaborated on a benchmark testing effort designed to measure the performance improvement associated with customizing an “out-of-the-box” implementation of Microsoft Dynamics CRM 4.0 to accommodate the requirements of a specific, real-world business scenario in which the customer would encounter potential issues with network latency and bandwidth.
Testing Plan
To derive the necessary data, we defined the following testing plan:
1. Define the specific business scenario
2. Perform a 500 user un-optimized run
a. Collect network stats for first-run (cold) experience
b. Execute benchmark
3. Customize CRM to accommodate requirements of business scenario
4. Optimize CRM/SQL based on the workload
5. Perform a 500 user optimized run
a. Collect network stats for first-run (cold) experience
b. Execute benchmark
Business Scenario
To meet the criteria of for the business scenario, we specified that the customer:
- Has offices located in four, geographically dispersed regions with varying network characteristics
- Uses Microsoft Dynamics CRM 4.0 for account and contact management
- Has customized the CRM deployment for optimal levels of network performance across all regions
Summary of Customizations
Based on this scenario, the teams customized the application by engineering a user interface that required fewer roundtrips and transmitted less data. Below is a summary of these customizations.
- Customized the Account and Contact forms
- Disabled Forms Assistant
- Changed the Default Public View to display two fields
- Removed selected fields and search fields
- Changed Number of Fields returned to 25
- Specified to show only Sales in Workplace Pane
- Changed the security role to only allow the Contact and Account Entities
- Disabled Duplicate Detection
- Removed as many items as possible from the left Navigation Bar (except Workplace)
- Customized Accounts and Contacts grid to show only the Name and a few other key fields
- Removed the majority of items in the left Navigation Bar of the Account and Contact forms
Detail of Customizations
The actions, rationale, benefits, and potential caveats that are associated with each of the customizations are shown in the following table:
Customization |
Rationale |
Benefit/Caveat |
|
Customized the Account and Contact forms |
|||
Disabled the Forms Assistant |
Users do not require the Form Assistant |
Application requires fewer roundtrips to load |
|
Changed the Default Public View to display two fields |
Eliminating unnecessary or unused fields |
Reduces the amount of data sent to/from the CRM Client |
|
Removed fields: § Account form: Other Phone; Fax; Phone; Address2; Address3 § Contact form: Street2; Street3; Country/Region; Phone; Salutation; Middle Name; Home Phone; Fax; Pager |
Eliminating unnecessary or unused fields streamlines form layout |
Reduces the amount of data sent to/from the CRM Client |
|
Removed search fields: § Account form: Account Number; E-mail § Contact form: All except FullName |
Eliminates unnecessary or unused search fields |
Enhances query execution; reduces the amount of data sent over the network |
|
Changed the Number of Fields returned to 25 |
Users can locate specific records by reviewing 25 or fewer fields |
Increases the efficiency of record searches and reduces the amount of data sent to the CRM Client, resulting in faster rendering times |
|
Modified the Workplace Pane to show only Sales |
Simplifies navigation by removing unused/un-needed options |
Prevents accidental navigation; facilitates training; and reduces the amount of data that is sent to/from the CRM client and the number of associated roundtrips |
|
Changed the security role to allow only the Contact and Account entities |
“Hardens” the deployment by removing access to unused entities |
Helps to lock down the application to provide access only to necessary business functions. Removing access to unnecessary entities also removes their visibility from the Workplace pane, in turn reducing the amount of data and roundtrips required by the CRM Client |
|
Disabled Duplicate Detection |
Customer anticipates that the system will not contain duplicate records |
Reduces data checks on Save; limits on-screen functionality to reduce roundtrips and data sent to the CRM Client |
|
Removed all unnecessary items (except Workplace) from the left Navigation Bar |
Simplifies navigation |
Streamlines interface, prevents accidental navigation, facilitates training, and reduces the amount of data sent to/from the CRM Client and the associated number of roundtrips |
|
Removed unnecessary items from the left Navigation Bar of the Account/Contact forms. |
Customer only uses CRM for account/contact management |
Streamlines interface, prevents accidental navigation, facilitates training, and reduces the amount of data that is sent to/from the CRM Client and the number of related roundtrips |
Testing Results
Overview
The tests we conducted were focused on the first-run (Cold) experience of the application. The subsequent run (Warm) experience of the CRM 4.0 application is highly optimized and typically only involves a handful of roundtrips and a very small amount of data transferred.
Note: For details of a network utilization study that documents the results of an un-optimized Cold and Warm run experience, on MSDN, see Microsoft Dynamics CRM 4.0 Performance and Scalability White Papers at:
http://www.microsoft.com/downloads/details.aspx?familyid=5852B14A-394C-4898-8374-CAF5E6479EB0&displaylang=en
While the performance improvements covered in this posting apply to both a Cold and Warm run experience, the savings associated with Cold runs are more significant.
Test Run Results
Deployment |
Home Page |
Create Account |
Create Contact |
Find Account |
Find Contact |
Open Account |
Open Contact |
Update Account |
Update Contact |
UN-OPTIMIZED |
|
|
|
|
|
|
|
|
|
Bytes Sent |
98,262 |
170,982 |
173,482 |
115,114 |
114,807 |
160,878 |
160,435 |
174,791 |
173,832 |
Bytes Received |
278,385 |
443,321 |
449,537 |
312,798 |
311,167 |
455,093 |
450,625 |
458,521 |
454,488 |
Roundtrips |
123 |
222 |
223 |
141 |
140 |
220 |
219 |
226 |
225 |
UN-OPTIMIZED IFD |
|
|
|
|
|
|
|
|
|
Bytes Sent |
146,485 |
290,842 |
289,113 |
174,169 |
172,566 |
291,207 |
286,798 |
301,482 |
297,972 |
Bytes Received |
191,681 |
357,704 |
353,496 |
226,743 |
225,255 |
364,542 |
359,335 |
367,247 |
361,876 |
Roundtrips |
90 |
177 |
176 |
106 |
105 |
179 |
177 |
183 |
181 |
OPTIMIZED IFD |
|
|
|
|
|
|
|
|
|
Bytes Sent |
131,007 |
213,304 |
228,210 |
138,444 |
149,952 |
230,151 |
221,229 |
217,022 |
229,750 |
Bytes Received |
174,321 |
267,011 |
292,400 |
180,052 |
203,839 |
354,941 |
295,024 |
273,788 |
295,251 |
Roundtrips |
81 |
131 |
140 |
86 |
93 |
143 |
137 |
133 |
141 |
% Improvement between Un-optimized non-IFD and Optimized IFD
Measurement |
Home Page |
Create Account |
Create Contact |
Find Account |
Find Contact |
Open Account |
Open Contact |
Update Account |
Update Contact |
Total Bytes Transferred |
18.94% |
21.81% |
16.44% |
25.57% |
16.95% |
5.01% |
15.52% |
22.50% |
16.44% |
Roundtrips |
34.15% |
40.99% |
37.22% |
39.01% |
33.57% |
35.00% |
37.44% |
41.15% |
37.33% |
IFD vs. Windows Authentication
The default authentication model (Windows Authentication) attempts to send each web request with anonymous credentials, and the server responds with a 401 response for those items that require authentication. At this point, the client sends the credentials. Items that do not require authentication are sent back immediately.
It is important to note that using the IFD deployment model reduces the roundtrips that are required to complete a business transaction because authentication credentials are sent with the web request. However, adding this credential also increases the amount of data sent to the server, which is reflected in the test results above.
Summary
Test results demonstrate that the customizing the CRM application can significantly improve performance in WAN environments. While customer business requirements will dictate the level of customization required, taking the approach described can dramatically reduce the network utilization and roundtrips required by the CRM application.
Thanks,