Performance Optimization for Microsoft Dynamics CRM
description
Transcript of Performance Optimization for Microsoft Dynamics CRM
Conn
ect
Lear
n
Shar
e Performance Optimization for Microsoft Dynamics CRM
Presented by: Walter Grow Austin Jones
@CRMUG
Meet your Speakers…
Microsoft Premier Field Engineer (5yrs)
• Developer Support• Workshops• Code Reviews
Partner Consultant (4yrs) Microsoft Support Engineer (2yrs)
Microsoft Premier Field Engineer (3yrs)
• Developer Support• Workshops• Code Reviews• Code Samples/Tools
Partner Consultant (7yrs)
PFE PFE
@CRMUG
AgendaClient
App
Data
PFE
@CRMUG
• 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
@CRMUG
Client
App
Data
@CRMUG
Measuring SQL PerformanceWhat do we look for?• Disk I/O
• >15ms• >25ms
• Page life expectancy • Long-running queries• Excessive blocking• Deadlock events
What tools do we use?• Perfmon• SQL Server Trace• SQL Profiler• SQL DMV’s• Performance Analyzer
for Dynamics
@CRMUG
SQL Server Optimization• Partition Alignment• Multiple disks• File segregation• SSD
• Max server memory• MaxDOP• Autogrowth• RCSI*
@CRMUG
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/CRMRescheduleMaintenanceJobshttp://crmjobeditor.codeplex.com
@CRMUG
Client
App
Data
@CRMUG
Measuring App PerformanceWhat do we look for?• High CPU utilization• Poor memory
allocation• HTTP request volume • HTTP request duration
What tools do we use?• Perfmon• IIS Log Analysis• PAL• WinDbg
@CRMUG
More details:http://aka.ms/CRMDecrease401Responses
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
@CRMUG
CRM Settings Optimization• Adjust audit settings• Disable smart
matching• Email tagging• Throttle client sync
• Mail router polling • Async service
workload• ERMO
(EnableRetrieveMultipleOptimization) and Quick Find Pre vs. Post CRM 2011 UR10 More details:
http://aka.ms/CRMQuickFindPerformance
@CRMUG
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/CRMParallelProgramminghttps://pfexrmcore.codeplex.com/
@CRMUG
CRM Report Optimization• FetchXML vs. FilteredViews• UTC DateTime columns• Let SQL aggregate & group• Pre-filter queries• Consider snapshots• ‘AlwaysOn’ Reporting
More details:http://aka.ms/CRMImproveReportPerformance
@CRMUG
Client
App
Data
@CRMUG
Measuring Client PerformanceWhat do we look for?• Network latency (<150ms)• Network bandwidth
(>50kbps)• <1s page loads (warm)• Script execution• XMLHttpRequests
What tools do we use?• F12 Developer Tools• Fiddler• Ctrl+Shift+Q• Client Diagnostics Page
More details:http://aka.ms/CRMDiagnosticsPage
@CRMUG
Tools…
@CRMUG
Client Optimization• Update Rollups • Enable SSL + HTTP
Compressionapplication/soap+xml charset=utf-8application/json charset=utf-8
• Disable HTC support• User Settings
• Browser version• Browser caching
(~300mb)• Antivirus exclusions• Max server
connections (IE7/8)More details:
http://aka.ms/CRMEnableWCFCompressionhttp://aka.ms/CRMOLPerformanceTipsP1http://aka.ms/CRMOLPerformanceTipsP2
http://aka.ms/CRMBrowserStandardsMode
@CRMUG
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• Async XMLHttpRequests
@CRMUG
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 MSD
N
• Our Tools (on CodePlex)• Performance Analyzer for
Dynamics• CRM Maintenance Job Edit
or• CRM OrgDbOrgSettings
Tool• PFE Core Library for Dyna
mics CRM
@CRMUG
How to find us…
[email protected] @maustinjones
[email protected] [email protected]
@pfedynamics @waltergrow
http://blogs.msdn.com/b/CRMintheField/
http://www.pfedynamics.com