Tech: VMware Best Practices for SAP virtualization

SAP is one of the latest companies which officially announced support for VMware environments.

Now from his corporate blog Michael Hesse, responsible for the technical side of the SAP Alliance, publishes a useful guideline to install SAP inside ESX Server VMs:

  1. Use the latest processor generations due to their enhanced support for virtualization.
  2. For optimal results use virtual machines with one or two virtual CPUs. It is possible to use four virtual CPUs if your workload requires more processing power, but performance-wise two virtual machines allocated two vCPUs each will give better throughput.
  3. Follow the SAP rules for setting up file systems for your database installation.
  4. Don’t over-commit memory! With VMware it is possible to assign more virtual memory to the virtual machines than there is physical memory available in the host. This practice is not recommended at all with SAP solutions. SAP allocates memory permanently and does not release it again. To enforce this policy, we recommend setting the “Memory Reservation” to the amount of memory configured for the virtual machine. This will ensure that the virtual machine with the SAP instance will always have the full amount of memory available. The same can be done for the “CPU Reservation,” but we recommend enabling this only in case of performance problems, since the reserved resources are not available to other virtual machines any more.
  5. Install VMware Tools to avoid time conflicts.
  6. If you are using SQL Server as the database, use “fixed memory allocation” to avoid the allocation overhead of “dynamic” memory allocation.
  7. For CPU-bound systems with sufficient memory resources, use the SAP flat memory model with memory protection (mprotect) switched off.
  8. For memory bound systems, use the classical SAP view memory model.