After publishing the blog Memory management for Dynamics CRM in a virtual environment we received a lot of questions basically asking for more details, we will provide more information in this blog.
One of the primary reason for doing virtualization is consolidation. Every Virtualization deployment is different from Hypervisor version to hardware and currently existing running workload.
If your CRM is a business critical application (Tier 1 applications) none of the following resources should be starved, throttled or saturated: CPU, Memory and disk for optimal predictability of your environment. As a result several best practices must be
- SQL Server “Lock Pages in Memory”
should be set. This means that:
- The virtual machine’s memory reservation should also be set to match the amount of the provision memory
- SQL Server “Max Server Memory” should be set accordingly and based on your SQL Server needs.
- There is a need to identify if your CRM environment is either having one of these top 3 resource contention you may refer to the: “Performance Troubleshooting for vSphere 4.1” guide: http://www.vmware.com/resources/techresources/10179 there is a “Troubleshooting Flow for a VMware ESX Host”.
As we can see above if your application is business critical you may want to consider having a “Premium” Virtualization plan where:
- CPU + Memory shares are set to high & memory is fully reserved.
- VM & SQL Storage response time meets your needs ( response time <25 ms ).
Additionally VMWare has created a guide: http://www.vmware.com/files/pdf/sql_server_best_practices_guide.pdf for optimal CRM and SQL performance these best practices should be applied.
- Last but not least the VMWare infrastructure and VMWare tools software should be up to date.
The challenge is often that CRM is deployed on an existing virtualization infrastructure that the guest has no visibility on. All that the guest can see regarding the Hypervisor are the one detailed here: https://www.vmware.com/support/ws55/doc/ws_performance_mon.html . Also there are many vital signs that we can check in the guest to name a few of these key vital signs: SQL Server Page life expectancy, %Processor Time and Processor queue length , Windows page file activity…
As a result if your CRM is a business critical application (Tier 1) all the above best practices should be in place and the virtualization environment should meet based on your SLA these needs.
When considering deploying CRM in a virtualized environment we strongly suggest having this discussion with your infrastructure team: can we have such a “Premium” plan? In the case that the existing environment does not provide such plan, either it can be added or evaluating a physical deployment should be considered.
Written by Julien Clauzel