VMware vSphere Compute Design Considerations

VMware vSphere Compute Design

Being able to gather and analyse requirements, then size the compute design based on those requirements is one of the key functions of any virtualisation project.
In terms of evaluating compute requirements, you should use the information gathered from your requirements analysis phase to factor in workload, availability and estimated growth.

The following factors should also be considered when sizing yours hosts, for example: Host performance, budget, datacentre capacity (rack, power, cooling etc…), infrastructure (network connectivity, storage connectivity etc…), security – PCI-DSS compliance (HIPAA, SOX, PCI etc..), scale-up / scale-out deployment strategy.

Here are a few well known tools, which can assist you in collecting performance and capacity information in order to calculate the workload requirements:

  • VMware Capacity Planner: A hosted service available to VMware partners, VMware Capacity planner collects resource utilisation and compares the data against industry values.
  • Platespin Recon from NetIQ: Workload analysis with remote data collection.
  • Cirba: Utilisation analysis, with normalization leveraging industry standards from SPEC.org.
  • Windows: Performance Monitor, disk manager
  • Linux: df, iostat, top, mpstat (use sar to output information to a datafile).

Lets assume that through your investigations you have you have identified 200 workloads which could be virtualized or migrated to a vSphere environment. As mentioned before your compute design should account for any future growth (lets assume 25% growth over 5 years).

Workload Requirement Analysis

Workload Estimations Values
Average CPU count 2
Average CPU per server (MHz) 2,000 MHz
Average CPU utilisation (percentage) 8%
Average RAM per server (MB) 4096MB
Average RAM utilisation (Percentage) 72%

Calculating the Average Peak CPU Utilisation:
Average CPU per server (MHz) × Average CPU count = Average CPU per server (MHz)
2,000 MHz × 2 = 4,000 MHz

Average CPU per server(MHz) × average CPU utilisation (percentage) = Workload average peak CPU utilisation (MHz)
4,000MHz × 8.00% = 320MHz

Number of workloads × Workload average peak CPU utilisation (MHz) = Total Peak CPU utilisation (MHz)
200 × 320MHz = 64,000MHz

Therefore we have determined that 64,000MHz will be required to support the 200 workloads.

Accounting for Growth:
Total CPU (MHz) required for the virtual infrastructure x forecasted growth = Total CPU (MHz) required
64,000MHz x 25% growth = 16000MHz + 64,000MHz = 80,000 MHz

Calculating the required number of ESXi hosts to satisfy the design requirements
Two 6-core CPU at 2,000MHz per Core
2 Sockets x 6 Cores x 2000 MHz = 24,000 MHz per  ESXi host @ 100% utilisation

Running any solution at 100% utilisation is never recommended, lets assume we’d like to have the system operating at 70% utilisation. It’s worth pointing out that resource utilisation should be continously monitored, its rare that workloads remain static.

Total Host CPU in MHz x Expected CPU utilisation = Total CPU Utilisation per ESXi host
24,000 MHz x 70% = 16,800 MHz

Total CPU Utilisation per host / Total CPU Utilisation required = Number of hosts needed
80,000 MHz / 16,800 MHz = 5 (rounded up)

Availability
Here you have a few decisions to make. Lets assume at minimum the design requires n+1 availability, this means that in the event of host failure you could have enough compute capacity to support the failure of one host in your design. However, you may not be able to satisfy the availability requirements during periods of host maintenance, so you may want to use n+2 availability.

Number of hosts needed + availability requirements (n+1) = 6 ESXi hosts.

vCPU-to-Core Ratio
This identifies the amount of assigned vCPUs to the number of logical CPU’s present. For CPU intensive workloads use a lower vCPU to core ratio, this may impact your VM-to-host consolidation ratios so bear this in mind.

Calculating the Average Peak RAM Utilisation:
Average RAM per server (MB) × Average RAM utilisation (Percentage) = Average peak RAM utilisation (MB)
4,096MB × 72.00% = 2949.12MB

Number of workloads × Average peak RAM utilisation (MB) = Total peak RAM utilisation (MB)
200 × 2949.12MB = 589,824MB

Accounting for Growth
Total peak RAM utilisation (MB) x forecasted growth = Total RAM required
589,824MB x 25% = 737,280MB

Note: This does not account for VMware TPS savings, which is typically around 25%.
Note: This does not include memory overhead requirements. This is memory needed by the VMkernel to support the workload. This is typically dependent on the amount of RAM/vCPU’s assigned to the virtual machine at power on. The following link gives you some idea of the amount of overhead required for each VM:VMware Memory Overhead

Calculating the required number of hosts to satisfy the design requirements
For this calculation we will assume the host has 256GB of RAM installed operating at 70% utilisation.

RAM installed per host x Total host RAM utilisation = Total RAM (MB) available
262,144 MB x 70% = 183,500.8MB

Total peak RAM utilisation (MB) / Total RAM (MB) available = Number of hosts needed
737,280MB / 183,500.8MB = 5 (Rounded up)

Number of hosts needed + availability requirements (n+1) = 6 ESXi hosts.

We have therefore established that we require six ESXi hosts to satisfy the compute workload, annual growth and availability requirements.
In a situation where the CPU or RAM produces a higher number of host, always choose the higher value in order to support both min & max CPU/RAM requirements.

2 comments

  1. Thank you for that detailed treatment of ESXi design and sizing. Am I mistaken, or is guest utilization accounted for twice – once at the guest level and once again with the overall 70% utilization assumption at the cluster level? Also, how do you account for the needs of the ESXi kernel itself? Is that what the 30% is for? If so, isn’t that rather inefficient for a hypervisor kernel.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s