Performance VDI Virtualization

VDI Capacity Planning with View Planner

By Mohit Mangal, Atul Pandey, and Alok Sen

Virtual desktop infrastructure (VDI) deployments are on the rise due to employees working from home all over the world. VDI users can work remotely from anywhere and on any device—like tablets, thin clients, and laptops—while accessing remote desktops hosted on private data centers and in the cloud.

Good user experience is a key requirement for a successful VDI deployment. With the typical deployment ranging from hundreds to thousands of remote desktops, measuring and optimizing the user experience is challenging because of complex architecture, hardware requirements, OS and application variations, various display protocols, and different performance requirements of various users.

View Planner Measures the Performance of VDI-User Workloads

VMware View Planner is a benchmark and capacity planning tool designed to simulate real-world workloads in a large-scale VDI environment. View Planner captures the user experience of simulated VDI users at the client side and measures latencies to identify infrastructure problems of those virtual desktops. The benchmark is scalable from a few virtual machines running on one host, to thousands of virtual machines distributed across a cluster of hosts.

Workloads and Work Profiles

View Planner application automations are called workloads. You can choose to measure the performance of  applications like Google Chrome, MS Word, MS Excel, Adobe Reader, and other user actions like moving files and so forth. You can also develop your own workloads.

A group of workloads make up a work profile in View Planner. You can either select one of the standard work profiles or create your own based on the applications you want to test. You can find details about work profiles at Understanding VMware View Planner Work Profiles.

Run Modes

View Planner supports local, remote, and passive-remote run modes for testing. Remote and passive-remote run modes use client VMs to connect with multiple VDI desktops. Local mode generates the workload directly on the desktop VMs. You can find more details about run modes at VMware View Planner Operation.


View Planner generates a PDF report after completing a test. The report includes quality-of-service (QoS) data, application operation latencies, and resource usage of the hosts involved in test. This data can then be used for optimizing the VDI deployment. You can find more details about reports at  Understanding VMware View Reports.

We Experiment to Find the Optimal Number of VMs to Run on the vSphere Host

By running the standard View Planner workload against several VMs that ran on a single vSphere host, we found the maximum number of VMs that could be run on the host—this is known as VM consolidation. The results showed that 130 VMs could be run on our host while the workload performance was within View Planner’s quality of service (QoS) rules, and it maintained its optimal resource usage (memory, CPU, and storage) on the host.

Testbed Setup

For this test, we used a 2-socket node with following configuration:

Processor Type Intel Xeon Gold 6240 Processor @ 2.60GHz
Logical processors 72
Memory 766.46 GB
Storage 2.91 TB
vSphere/ESXi version 6.7.0
View Planner 4.4

We allocated the following resources to each VM:

vCPUs 2
Memory 4 GB
Storage 50 GB

We decided to perform a remote-mode test because it simulates a real user experience. We used BLAST as our VDI protocol choice (View Planner also supports PCoIP and RDP). We also decided to go with the Standard_Profile  work profile, which includes typical applications a knowledge worker would use: Adobe Reader, Google Chrome, Microsoft Office, and Windows media player.


We selected and monitored several key parameters to ensure good user experience and system performance with optimal resource usage.

Performance Parameter


CPU-sensitive operations (Group A) < 1 Second
Storage-sensitive operations (Group B) < 6 Seconds
Ratio of actual-to-expected operations (O/E ratio) > 0.9
Discarded desktop count < 2%
Memory usage of any desktop host < 90%


View Planner Installation and Configuration

In the following sections, we explain the steps we performed for the benchmark setup and experiments. For more detail of this process, see the VMware View Planner Documentation.

Step 0: Prerequisites

We created a VDI environment on a host node that included vCenter, Horizon View, and Active Directory with SSL enabled.

We also added two hosts in our vCenter: one for the desktop VMs and another one for the client.

Step 1: We installed View Planner

View Planner has two main components:

  • The View Planner harness is an OVA file.
  • The View Planner agent is a Windows installer file.

The View Planner harness is the controller that drives the benchmark, while View Planner agent is installed on the desktops to generate load. View Planner components can be downloaded from the product page.

Step 2: We set up and configured the View Planner harness

We deployed the View Planner harness OVA file using the vSphere Client of vCenter Server. Once the OVA is deployed and powered on, the View Planner UI was accessible using http://harness-ip/vp-ui. Below is a snapshot of the View Planner home page after a successful login. Notice the squares on the left side–we call these tabs.

Screenshot of View Planner successful login, which brings you to the home page
Figure 1. This is what the View Planner home page looks like after you successfully log in. The RUN tab is selected.

Step 3: We configured the VDI environment

Next, we selected SERVERS on the left menu and configured the VDI environment details using the steps in Configuring the View Planner Harness. We added our vCenter as an Infra Server, Microsoft Active Directory as the Identity Server, and Horizon View as the VDI Server. Adding Identity and VDI Server details are required only for remote and passive mode tests. Once added, we used the test button to validate the server configuration.

Screenshot of our setup for Add Infra Server
Figure 2. We configured Add Infra Server.
Screenshot of adding identity server
Figure 3. We added the Identity Server.
Screenshot of adding a VDI server
Figure 4. We added the VDI Server.

Step 4: We created some vSphere virtual machines

We created 144 desktops and 144 client virtual machines. We used the desktop virtual machines to automate the application workload and the client virtual machines to simulate real users by initiating desktop sessions using the Horizon Client.

Step 5: We set up the desktop virtual machines

We created a desktop parent VM using the steps given in Setting Up the View Planner Windows Desktop Virtual Machines. We validated the setup by rebooting the VM and confirming that the View Planner agent command Prompt was up after autologin and there was no error.
We used the desktop parent VM to create a Horizon pool of 144 VMs on the desktop host. We created instant clones for our tests. Note that full and linked clones are also supported.

Step 6: We set up the client virtual machines

We created a client-parent VM using steps given in Setting Up the View Planner Windows Client Virtual Machines. We validated the setup by rebooting the VM and confirming that the View Planner agent command prompt was up after autologin and there was no error.

Using the client-parent VM, we created 144 client VMs on the client host by following the steps in Creating Clones Using View Planner. Alternatively, you could create client VMs using VMware Horizon or manual cloning.

Step 7: We created a run profile

A run profile acts as template for the View Planner tests. We created a run profile with 5 iterations and used the Standard_Profile work profile because this includes all of the workloads required for our test. You can get a list of available work profiles in the WORK PROFILE tab on the left-side menu. You can create your own work profile if none of the available profiles matches your requirement.

Screenshot of the View Planner run profile we used
Figure 5. We used the standard run profile.

Based on our experience, we started the first round of tests by allocating 4 VMs per core. Our host has 36 cores, so we come up with the VM count of 144. This number can be changed in subsequent tests based on the threshold criteria defined earlier.

You can find detailed steps for creating new run profile at Creating a Run Profile.

Step 8. We ran View Planner

Finally, we started the 144 VM test run by selecting the RUN tab. A standard work-profile run takes approximately 120 minutes and can vary depending on the virtual machine count. You can also use the RUN tab to track live-run status during the test period. For details, see Starting a View Planner Run.

Screenshot of View Planner after running it
Figure 6. We ran the standard profile by clicking the RUN tab.

Run Results

When a run is complete, View Planner generates a PDF report, in which there are sections for quality of service (QoS) and host resource usage. QoS is reported separately for CPU-sensitive operations (Group A) and storage-sensitive operations (Group B). The upper acceptable threshold for Group A is 1 second and for Group B is 6 seconds.

The following screenshots show QoS and host resource usage from the report from our 144 VM run. From the Host Resource Usage, we considered Average CPU Usage (85.06) and Average Memory Usage (50.61).

Screenshot of a table showing View Planner run results
Table 1. Quality of service results for our run of 144 VMs
Results from host resource usage
Table 2. Results of host resource usage for run of 144 VMs

The above screenshots show that the QoS of storage-sensitive operations is above the threshold limit. So, we decided to decrease the VM count to 130 in our run profile and performed another test run. The following screenshots show QoS and host resource usage from the report of our 130 VM run.

Screenshot of View Planner run results for 130 VMs
Table 3. View Planner run results of quality of service for 130 VMs
Screenshot of table showing results for host resource usage
Table 4. Results of host resource usage for run of 130 VMs


Based on our tests, we can safely say that our single ESXi host can support 130 VMs when users simultaneously run and interact with typical office applications on these VMs. We kept a 17% margin in CPU Usage, which provided a buffer for peak times.

Contact Us

If you have any questions or want to know more, reach out to VMware View Planner team at The View Planner team actively monitors this email address.



Leave a Reply

Your email address will not be published. Required fields are marked *