Architecture for performance - hypervisors and host
The Delphix Engine is a "virtual appliance": a virtual machine guest running within a hypervisor on a physical host.
There are a few key best practices we need to keep in mind as we consider this architecture.
Architecture best practices hypervisor host ESX
Hypervisor
ESXi 6.x or 7.0 is recommended. ESXi 5.5 or earlier is no longer supported.
HyperThreading (HT) for IntelĀ®-based servers (no HT on AMD CPUs).
Disable HT in BIOS, on the ESXi Host, and disable HT Sharing on the Delphix VM for consistency. This is our best practice, disable at all levels.
Any other combination may result in a non-deterministic performance.When HT cannot be turned off for both the Host and Delphix VM, it should be turned on at all levels, not run in a "mixed-mode".
HT disablement at a guest level only can result in non-deterministic performance.
A dedicated ESXi host, cluster, or DRA is recommended where consistent VDB performance is paramount.
VM migration to a new host (e.g. VMware HA or vMotion) can create mismatched HT settings.
ESXi overhead (resources required for hypervisor cannot be reserved, they must be left unallocated).
Memory Overhead - 10% of available RAM must not be allocated to guest VMs.
Example: 256GB RAM, allocate 230GB to Delphix VM, leave 26GB for ESX
CPU Overhead - At least 2 cores (ideally 4) must not be allocated to guest VMs.
Example: If 16 physical cores are available, allocate 12 to the virtual machines, leaving 4 for the hypervisor
Why 4? Certain hypervisor functions require precedence over any virtualized system. If a hypervisor needs more CPU than the amount currently available, it can de-schedule all other virtual processes to ensure adequate CPU resources for the hypervisor. Ensuring the hypervisor will not have to de-schedule any running virtual processes (worlds) by setting aside and not over-subscribing CPUs for virtual functions will leave them available for hypervisor use.
Even if the Delphix VM is the only VM on a host, the hypervisor is still active and essential; and still needs resources.
BIOS Power Management should be set to High Performance where ESXi controls power management.
It can be impacted by VMware KB 1018206 - poor VM application performance caused by power management settings.
Ensure that all BIOS-managed C-States other than C0 are disabled if power management is hardware controlled.
Ensure that all ACPI sleep states above S0 are disabled in the BIOS.
Examples of popular server lines from Cisco, HP, Dell are below. Specific models will vary, use the appropriate spec sheet.
UCS: disable the Processor Power States, disable Power Technology, set Energy Performance to "Performance"
HP Proliant: set HP Power Regulator to HP "Static High Performance" mode
Dell: set BIOS System Profile to "Performance Optimized" mode
VMware HA can be enabled; VMware DRS is generally disabled.
Blade/Rack Server Firmware and ESXi Drivers should be updated to the latest versions.
For IntelĀ®-based servers with E5-2600 v2 processors.
Two typical server configurations:
Blade Farm
Rack Server
Hyper-Converged configurations are possible for high performance.
Virtual machine guest
For VM machine settings, see Virtual Machine Requirements for VMware Platform.
VMWare Guest Specifications:
Minimum: 8 vCPU x 64 GB
Small: 8 vCPU x 128GB
Medium: 16 vCPU x 256 GB
Large: 24 vCPU x 512 GBReserve 100% of RAM and CPU:
If the ESX host is dedicated to Delphix, CPU and RAM reservations are advised but not necessary, however, swap space will be required on the hypervisor to compensate for the lack of reserved RAM.
Hyperthreading - See the ESX host section at the top. Disable HT Sharing on VM, disable HT on ESX Host.
Assign single-core sockets for vCPUs in all cases. If there is a compelling reason to use multi-core vCPUs, reference the following article from VMware which describes matching virtual multi-core sockets to the hardware ESX is running on.
VMware Article on CoresPerSocket
Example: ESXi Host has 2 socket x 18 core Intel Xeon, Delphix Engine wants 16 vCPU.
Configure Delphix VM with 2 Virtual Sockets, 8 Cores Per Socket to utilize hardware architecture.Avoid placing other extremely active VMs on the same ESX host.
Monitoring - vSphere Threshold Alerts for CPU, Network, Memory, Capacity.
To set the number of vCPUs per virtual machine via the vSphere client, please see "Virtual CPU Configuration" in the Administration guide:
Delphix VM CPU Utilization - Delphix KB article on what makes Delphix VMs similar to other resource-intensive applications
Exchange on VMware Best Practices - VMworld 2013 session
ESXTOP Reference, Blog
Ensure that the latest available VMware drivers and firmware versions are installed for HBAs, NICs, and any other hardware components configured on the Delphix virtual machine. This is a critical step that can have a massive impact on the performance and robustness of our solution.