220 likes | 413 Views
Performance Optimization for Microsoft Dynamics CRM. Presented by: Walter Grow Austin Jones . Meet your Speakers…. Microsoft Premier Field Engineer (3yrs) Developer Support Workshops Code Reviews Code Samples/Tools Partner Consultant (7yrs). Microsoft Premier Field Engineer (5yrs)
E N D
Performance Optimization for Microsoft Dynamics CRM Presented by: Walter Grow Austin Jones
Meet your Speakers… Microsoft Premier Field Engineer (3yrs) Developer Support Workshops Code Reviews Code Samples/Tools Partner Consultant (7yrs) Microsoft Premier Field Engineer (5yrs) • Developer Support • Workshops • Code Reviews Partner Consultant (4yrs) Microsoft Support Engineer (2yrs) PFE PFE
Agenda Client App PFE Data
Support Microsoft’s Premier customers & partners Remote & on-site | Proactive & reactive Transactional or dedicated/designated Aligned to customer/partner desired outcomes Services • RaaS: Health assessment & remediation planning • Performance investigation & benchmarking • Workshops: Admin, Reporting, & Development • Code reviews & samples
Client App Data
Measuring SQL Performance What do we look for? What tools do we use? Perfmon SQL Server Trace SQL Profiler SQL DMV’s Performance Analyzer for Dynamics • Disk I/O • >15ms • >25ms • Page life expectancy • Long-running queries • Excessive blocking • Deadlock events
SQL Server Optimization • Partition Alignment • Multiple disks • File segregation • SSD • Max server memory • MaxDOP • Autogrowth • RCSI*
Database Optimization • Update Statistics • Index Maintenance • Reschedule CRM Maintenance Jobs • ROW/PAGE Compression • Sparse Columns • Query tuning More details: http://aka.ms/CRMMaintenanceJobs http://aka.ms/CRMRescheduleMaintenanceJobs http://crmjobeditor.codeplex.com
Client App Data
Measuring App Performance What do we look for? What tools do we use? Perfmon IIS Log Analysis PAL WinDbg • High CPU utilization • Poor memory allocation • HTTP request volume • HTTP request duration
Server Optimization • Update Rollups • Distributing server roles • Network load balancing • Disable CRM tracing and debugging • AppPool recycling schedule • Enable authPersistNonNTLM* • ASP.NET ThreadPool Tuning • .NET HTTP MaxConnections More details: http://aka.ms/CRMDecrease401Responses
CRM Settings Optimization • Adjust audit settings • Disable smart matching • Email tagging • Throttle client sync • Mail router polling • Asyncservice workload • ERMO (EnableRetrieveMultipleOptimization) and Quick Find Pre vs. Post CRM 2011 UR10 More details: http://aka.ms/CRMQuickFindPerformance
CRM Code Optimization • Sync vs. async • Filter workflow/plugin execution • Avoid plug-in class members • Don’t retrieve or update event target • Don’t retrieve for update • IServiceManagement<T> • Avoid AllColumns = true • Parallelize high-volume operations More details: CRM Programming Best-Practices http://aka.ms/CRMParallelProgramming https://pfexrmcore.codeplex.com/
CRM Report Optimization FetchXMLvs. FilteredViews UTC DateTime columns Let SQL aggregate & group Pre-filter queries Consider snapshots ‘AlwaysOn’ Reporting More details: http://aka.ms/CRMImproveReportPerformance
Client App Data
Measuring Client Performance What do we look for? What tools do we use? F12 Developer Tools Fiddler Ctrl+Shift+Q Client Diagnostics Page • Network latency (<150ms) • Network bandwidth (>50kbps) • <1s page loads (warm) • Script execution • XMLHttpRequests More details: http://aka.ms/CRMDiagnosticsPage
Client Optimization • Update Rollups • Enable SSL + HTTP Compression application/soap+xml charset=utf-8 application/jsoncharset=utf-8 • Disable HTC support • User Settings • Browser version • Browser caching (~300mb) • Antivirus exclusions • Max server connections (IE7/8) More details: http://aka.ms/CRMEnableWCFCompression http://aka.ms/CRMOLPerformanceTipsP1 http://aka.ms/CRMOLPerformanceTipsP2 http://aka.ms/CRMBrowserStandardsMode
UX Optimization • Security model • Access Teams (2013) • Field-level Security • Disable auto-complete • Disable presence • Limit Quick Find results • Form fields and view columns • Quick Find columns • Collapsed tab state • Limit Sub-grids • Minimize publishing • Defer script execution • AsyncXMLHttpRequests
Homework… • Whitepapers • CRM 2011 Optimizing Server Performance • CRM 2011 Optimizing Client Performance • CRM 2013 COMING SOON! • Blogs • CRM in the Field on MSDN • CRM Product Team on MSDN • Our Tools (on CodePlex) • Performance Analyzer for Dynamics • CRM Maintenance Job Editor • CRM OrgDbOrgSettingsTool • PFE Core Library for Dynamics CRM
How to find us… austinj@microsoft.com @maustinjones pfedynamics@microsoft.com wagrow@microsoft.com @pfedynamics @waltergrow http://blogs.msdn.com/b/CRMintheField/ http://www.pfedynamics.com