Technical Deep Dive on Dynamics 365 Customer Engagement Performance Optimization - Nov. 22nd, 2017
←
→
Page content transcription
If your browser does not render page correctly, please read the page content below
2 On today‘s call SIMONE ASTOLFI RADU NEGULESCU
3 Agenda • Optimizing the Application • Network • Troubleshooting • Troubleshooting Tools • Q&A
4 Causes of Performance Effects of Performance Issues Issues Users and business process Slow Form Loads Application Application configuration Application Saving Records Application coding Slow List View Loading Database index and table design Database Slow Workflow Processing SQL Server configurations Database Slow Searching Operating System Timeouts and Deadlocks Hardware Infrastructure Slow Logins Datacenter Network Infrastructure Customer Network Timeouts
5 Optimizing the Application
6 Client Machines • Meet/Exceed Hardware and Software Requirements • Power Settings Web Client requirements High Performance Supported Web Browsers and Mobile • Non-essential applications Devices Turn off or Disable • VDI/Citrix Scenarios • Antivirus Programs / ScriptScanning Add Dynamics site to list of safe sites
7 Internet Explorer • IE Zoom - set to 100% • New versions of stored pages - Automatic • Disk Space to use - 250 MB • Delete Browsing on Exit – Unmarked • Do not save encrypted pages to disk - Unmarked
8 System Settings • IM Presence • Learning Path • Activity Feeds • Legacy Form Rendering • Enable Quick Find record limits • Audit Only What You Need
9 Security Roles • Organization • Parent-Child Business Unit • Business Unit • User • None
10 Sharing Considerations • Limit Sharing of records • Use security roles and If sharing is needed use Access Teams business units to grant if possible versus direct shares access to records • Direct vs Indirect Shares • Access Teams Scalable Security Modeling
11 Cascading Considerations Default Cascading rules are setup to cascade If you are deleting an account and the account has hundreds of activities and has contacts with hundreds of activates and opportunities with activities the delete cascades through all those records.
12 View Customizations
13 Form Customizations Role-based Forms Use to limit what loads on a form Form Controls - Remove if not needed Quick View Forms Bing Maps Timer Controls Charts Social Pane IFrames & Web Resources
14 Demo
15 Developer Tips Best practices for developing with Microsoft Dynamics 365
16 Reporting • Complexity of Report and number of charts in a dashboard • 50,000 record limit with charts • Reports can span more the 50,000 records, however must complete within 5 minutes or will timeout • Limit the fields pulled in the query Microsoft Dynamics 365 (online) reporting considerations
17 Network
18 Bandwidth and Latency • Average latency less than 150 ms. • Max Download Speed greater than 50 KB/sec Diagnostic Page (https://.crm.dynamics.com/tools/ diagnostics/diag.aspx)
19 Troubleshooting
20 Questions to Ask If only a subset of users are impacted, perhaps it is something Does this impact certain users or is this issue isolated to a certain office branch, Security Role or local reproducible by all users? machine configuration.
21 Questions to Ask If the issue is on certain forms, certain sections or areas of the What entities/area does this issue happen with? application, it potentially is related to customizations. The amount of customizations, number of subgrids loading or client side code executing slowly.
22 Questions to Ask What form(s) does the issue happen with? If the issue happens with only certain entities, investigation can focus on items interacting with this specific entity. If all entities are impacted, we can look at more general SQL issues, Network and client side for troubleshooting.
23 Questions to Ask If the issue only reproduces in a specific browser, look for add- ins for the affected browser to see if they may be causing additional processing. If users are reporting the same behavior What browser is being used? with the same browser, have them try from a new machine or machine off company network and policies (such as a home computer) and see if the issue still reproduces. If the issue does not happen on a home computer, this could mean the issue related to the Group Policy / configuration of machine on the company network.
24 Legacy Forms This can be done with the customer by Check and see if Legacy Form having them check Settings -> rendering engine is being used. Administration -> System Settings -> General tab
25 Plugins Log into the instance and check if they have any plugins registered on that entity, specifically regarding 'Retrieve' message. This can be done by navigating to Settings -> Settings -> Customizations -> Customize the System -> Sdk Message Processing Steps. You can ignore the ActivityFeeds plugins typically as these are Check and see if they have any out of the box plugins. We are looking for entries which match the following: plugins executing on the entity in question - SDK Message = Retrieve (Possibly other SDK Message types as well, such as RetrieveMultiple) - Primary Object Type Code = - Status = Enabled - Execution Mode= Synchronous SDK Message Processing Steps matching these results could be investigated as they would be executing when the record is loaded. These steps could be potentially disabled and the scenario can be retested without these enabled to see if the issue remains.
26 On Load Events Navigate to Settings -> Customizations -> Customize the System -> Entities -> -> Forms -> . Then navigate to Form Properties -> Events tab. Are there libraries listed under Form Libraries? If there is, these are the libraries or the definitions of the client side scripting. Under Form Customizations, Under Event Handlers, Event: OnLoad, are there libraries listed check for OnLoad events here? Are they enabled? Should there be an OnLoad listed here, this means when the page is loaded, it runs the function(s) listed below. If there are OnLoads listed and enabled, try disabling them, save and publish the forms. Then attempt to reproduce the issue.
27 Express Route Not routing customer information via the public internet Dedicated connection avoiding conflict with other internal traffic Microsoft Dynamics 365 and ExpressRoute
28 Troubleshooting Tools
29 Azure Speed Test This is an approximate calculation of latency to Azure Run AzureSpeed test to determine data centers from the client machine. The data centers client latency to Azure datacenters. we would want to be mindful of are: - North America, West US, California From web browser, access - North America, East US 2, Virginia http://www.azurespeed.com/ Same recommendations here as the CRM Diagnostic Page. This is not a definitive CRM test but more of a general network performance indicator.
30 Fiddler Take a look at ClientBeginRequest, ClientDoneRequest, ServerGotRequest, ServerBeginReponse and ServerDoneReponse. Look for long delays here between the markers. Long delays would be over a couple of seconds. Capture a Fiddler Trace while trying to load the form. For If delays are between ServerGotRequest and ServerBeginReponse, this indicates the server was additional instructions, see the processing on retrieving or processing the data before Fiddler documentation for details sending back to the client. Look towards SQL or Plugin on using Fiddler or utility Website: execution delays. http://fiddler2.com If the delay is ClientBeginRequest, ClientDoneRequest or ServerGotRequest, this indicates slow network in sending the request to the server. Look at network latency, bandwidth and perhaps firewalls on the customer side.
31 Form Performance Test There will be 4 larger markers (All Subgrid If the form does load, run Forms Load, Complete Load, Edit-Ready (pre- Performance report when onload), Edit-Ready (post-onload) and then reproducing issue. (alt+shift+q) a bunch of smaller ones. Values are in milliseconds (ms). The main 4 should complete between 2400 - 7000 typically.
32 Collecting Client Side Performance Metrics 1. Login to your CRM organization in browser. Navigate to any entity grid or form. 2. Press Alt + Shift + Q. 3. In the Performance view that this opens, click "Enable" to turn on capture of performance measurements. 4. Click "Close" to close the Performance view. 5. If you are measuring form load time, navigate to the grid for the entity you want to measure. 6. Open a record. Let it load fully. 7. Press Alt + Shift + Q to bring up the Performance view. 8. Click on "Select Major" to get a list of the main measurements. 9. For Dynamics CRM 2015 Spring release, for the new forms, the 2 main measurements are: a."ControlsInitializationCompleteTimestamp" : all controls on the form are initialized and record is edit ready. Asynchronous loads may not be completed yet. b."All Sub-grids Loaded": All sub-grids are loaded with the associated records. All asynchronous loads are complete.
33 Collecting Network Traces from the Browser 1. Identify the scenario (page) which is loading slowly. Preferably this should be a warm scenario (i.e. page navigated the second time and cache warmed up) 2. Use IE 11 network analyzer to record a trace: a. Show the network analyzer by pressing F12 then clicking on the network icon then start tracing by clicking on the green play button. b. Execute the test scenario. c. Stop recording by clicking on the red stop button d.Save to xml file by clicking the button next to it 3.Use Chrome network analyzer to record a trace: a. Open network analyzer by pressing F12 and then clicking on Network. Unlike IE Chrome records by default. b. Execute the test scenario c. Stop recording by clicking on the red record button d. Right click on the grid and choose “Save as HAR with content”
34 Additional Resources • Optimize form performance • Retrieve Multiple Performance • Older “Tips & Tricks” from the field: • Microsoft CRM Online Performance Tips & Tricks - Part 1 • Microsoft CRM Online Performance Tips & Tricks - Part 2 • Key preparation and configuration tasks
GET STARTED Technical Journey Start here if you are new to Microsoft Dynamics 365 Introduction to Dynamics 365 Customer Engagement Introduction to Dynamics 365 CUSTOMER ENGAGEMENT Technical Onboarding (Day 1) Attend this Technical Journey if you are new to Recording from November 6th, 2017 Microsoft Dynamics 365. Components: Introduction to Dynamics 365 CUSTOMER ENGAGEMENT Technical Onboarding (Day 2) • 4 technical training Webcasts (free of charge) Recording from November 7th, 2017 • One-to-one Starter Kit Consultation* What's New and Highlights in Business Applications Target audience: Recording from November 8th, 2017 • IT Decision Maker • Tech Influencing Business Developer Manager • Productivity Consultants Introduction to Microsoft Dynamics 365 - Internal Use Rights & Demo Benefits Recording from November 8th, 2017 • Sales Solutions Specialist • PreSales Specialist • Consultant Introduction to Dynamics 365 CUSTOMER ENGAGEMENT - Basics of Customization Recording from November 9th, 2017 Technical Level: • 100-200 (Introduction + Technical Details) Dynamics 365 Starter Kit Consultation *The cost for this technical consultation Prerequisites: Delivery method: on-demand* is 5 partner advisory hours. • You have to be a Microsoft Partner • Experience with Office 365 is an advantage
GROW Technical Journey Enhance Your Business with Dynamics 365 for Field Service Enhance Your Business with Recording from November 14th, 2017 Dynamics 365 Customer Engagement Enhance Your Business with Dynamics 365 and Azure B2B Functionality Attend to this Technical Journey if you already Recording from November 14th, 2017 have experience with any Dynamics 365 Application and wish to enhance your business portfolio with new services. Enhance Your Business with Dynamics 365 Portals Recording from November 14th, 2017 Components: • 7 technical training Webcasts (free of charge) • One-to-one Growth Consultation Enhance Your Business with Dynamics 365 for Project Service Automation and Project Online Recording from November 15th, 2017 Target audience: • Architect Enhance your business with Dynamics 365 - PowerApps and Flow Recording from November 15th, 2017 • IT Decision Maker • Tech Influencing BDM Enhance Your Business with Dynamics 365 with Cognitive Services / Cortana Intelligence Technical Level: Recording from November 16th, 2017 • 200 (Technical Details) Enhance Your Business with Dynamics 365 and Data analysis / Insights / Power BI Prerequisites: Recording from November 16th, 2017 • Basic know-how of Dynamics 365 Customer Engagement functionalities. Dynamics 365 Growth Kit Consultation *The cost for this technical consultation Delivery method: on-demand is 5 partner advisory hours.
OPTIMIZE Technical Journey Technical Deep Dive on Dynamics 365 Customer Engagement Technical Deep Dive on Dynamics 365 with Azure AD - Managing Multiple Customers Recording from October 10th, 2017 Attend this Technical Journey if you wish to have a technical deep dive into specific functionalities of the listed Microsoft Dynamics 365 Applications. Technical Deep Dive on Dynamics 365 for Field Service Recording from November 21st, 2017 Components: • 5 technical training Webcasts (free of charge) Technical Deep Dive on Dynamics 365 with PowerApps • One-to-one Growth Consultation* Recording from November 21st, 2017 Target audience: Technical Deep Dive on Dynamics 365 CUSTOMER ENGAGEMENT performance optimization • Architects Delivery date: November 23rd, 2017, 09:00 - 10:00, GMT (London) • Consultants Technical Level: Technical Deep Dive on Dynamics 365 with Azure Logic Apps Delivery date: November 23rd, 2017, 10:30 - 11:30, GMT (London) • 300-400 (Functional/Technical Deep Dive) Prerequisites: • Solid know-how of Dynamics 365 Customer Dynamics 365 Advanced Workload Consultation *The cost for this technical consultation Engagement functionalities Delivery method: on-demand* is 5 partner advisory hours. • Developer skills required for Level 400 sessions
38 Questions Wishes askpts@microsoft.com Feedback
39 © 2017 Microsoft Corporation. All rights reserved. Microsoft, Microsoft Dynamics, and the Microsoft Dynamics logo are trademarks of the Microsoft group of companies. The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED, OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.
You can also read