VDI Calculator Guide

Screen Shot 2016-04-06 at 4.18.10 PM

Desktop Type

For each pool of desktops the calculator allow you to define a desktop type with its own individual configurations:

User Profile Selection – There are four different user profiles that can be used to configure the desktop type (Task, Office, Knowledge and Power). You may also modify a profile after selection according to your needs. The pre-configured profiles loosely follow LoginVSI 4.1 recommendations.

Screen Shot 2016-03-30 at 6.39.07 PM

Number of vCPU – Number of virtual CPUs per desktop. It is recommended 1 vCPU for task users and 2 vCPU for knowledge users.

Average vCPU MHz – Average CPU utilization per desktop. If not known leave as Default.

vCPU MHz Overhead – This setting prevents CPU oversubscription. It is recommendable to leave 10% or more room for CPU bursts.

VMs per Core – Both Citrix and VMware recommend 7-11  desktops per core being an ideal number for most VDI deployments while maintaining vSphere cluster high availability (N+1) and staying below the maximum supported VMs per core of 16. Read more at A review of VMware View 4.5 Limits and Maximums.

Disposable Disk – Size of Disposable Disks (Affect only Linked Clones).

Number of Desktops – Number of desktops per desktop pool.

Concurrent Desktops – Number of concurrently powered On desktops. The desktop concurrency defines the number of hosts.

Replica Steady State IOPS – Number Linked Clone Replica IO operations per second in steady state. If not known leave as Default. (Affect only Linked Clones)

Boot IOPS – Maximum number of IO operations per second a desktop will issue during the boot process.

Pool Type – Select either Linked Clones or Full Clones.

Memory Size (MB) – Amount of RAM per desktop.

% VM Memory Reservation – Increasing memory reservation reduces VMware vSphere VM swap file. This setting plays a key factor on storage capacity savings. Read more at Pagefiles and VDI. Not so simple.

Desktop State – Defines host CPU consumption and storage footprint for desktops in suspended mode or powered off when not in use.

Refresh on Logoff (%) – Define maximum Linked Clone size until next refresh operation. (Affect only Linked Clones)

Snapshots per Pool – Recommended setting two snapshots per desktop pool to accommodate recomposes operations. This number is used for calculation of the replica datastore size. (Affect only Linked Clones)

Number of Parent VMs – One Parent VM may serve several desktop pools. Normally associated with the number of golden images in use.

Number of Desktop Pools – Maximum of 2000 desktops is allowed per pool. The calculator will show an error if the number of desktops pools is too small to support the number of desktops. Read more at A review of VMware View 5.3.1 Limits and Maximums.

Number of Displays – The number of displays in use per desktop affect the VM memory overhead. The higher the number of display more RAM memory is assigned to the VM memory overhead.

Display Resolution – The display resolution selected per desktop affect the VM memory overhead. The higher the resolution more RAM memory is assigned to the VM memory overhead.

3D Graphics – Amount of vRAM to be assigned for 3D use. Read more at VMware View 5.0 3D Reverse Engineered and vSphere 5.0 New .vswp file & Storage Tax on VDI.

Parent VM Thin Size (MB) – Effective disk space utilized by Parent VM. If you created a 40GB disk but only 25GB is effectively utilized, in this field you would enter 25GB. This number is used to calculate the Linked Clone replica disk size. (Affect only Linked Clones)

Persistent Disk Size (MB) – Size of Linked Clone Persistent Disks when in use. (Affect only Linked Clones)

Parent VM Size (MB) – Size of the VMDK assigned as parent VM. This number is used to calculate total storage utilization.

Delta Steady State IOPS – Number disk IO operations per second in steady state. When using Linked Clone this represents the operations only on the delta disk. This field is also applicable to Full Clones.

Delta Read IOPS (%) – Percentage of “Delta Steady State IOPS” to be read operations.

Persistent Steady State IOPS – Number disk IO operations per second in steady state for Linked Clone persistent disks when used. (Affect only Linked Clones)

Persistent Read IOPS (%) – Percentage of “Persistent Steady State IOPS” to be read operations.



Screen Shot 2016-04-06 at 4.18.22 PM


The host tab provides a general configuration that relates to all servers and cluster in an entire VDI deployment.


Sockets per Host – Total number of socks per host server.

Cores per Socket – Total number of cores per socket. Not necessarily more cores are always better. Read Cores and more Cores… We don’t need them!

Shared Memory (%) – Define the amount of Transparent Page Sharing (TPS) per host. This number changes according to GuestOS type, applications in execution, and helps to calculate the total amount of memory required per host. A recent academic research that leverages Transparent Page Sharing (TPS) to gain unauthorized access to data under certain highly controlled conditions and documents VMware’s precautionary measure of restricting TPS to individual virtual machines by default. The defaultShared Memory (%) is 0, but it can be changed if desired. A warning will be displayed to the user upon default change. http://kb.vmware.com/selfservice/microsites/search.do?language=en_US&cmd=displayKC&externalId=2080735

Used Memory (%) – Total percentage of host memory available for use by virtual desktops. Recommended keeping at 100%.

Hypervisor Memory Overhead – Amount of RAM reserved for hypervisor kernel operations. The default for ESXi is 1024MB.

CBRC – CBRC will help address some of the performance bottlenecks and the increase storage cost for VDI. CBRC is a 100% host-based RAM-Based caching solution that helps to reduce read IOs issued to the storage subsystem and thus improves the scalability of the storage subsystem while being completely transparent to the guest OS. Read more at Understanding CBRC (Content Based Read Cache).

Infrastructure Model – Traditional 3 tier architecture using SAN (Storage Area Network), HCI with Nutanix, or Open Converged with Datrium. When Nutanix or Datrium are selected the calculator auto-populate and lock-down fields that are not relevant or pre-defined.



Screen Shot 2016-01-22 at 10.21.45 PM


The Storage tab provides a general configuration that relates to all storage in an entire VDI deployment.


Broker Type – Select VMware Horizon View, Citrix XenDesktop or Workspot.

Persistent per Datastore – the Global number of Linked Clone persistent disks per datastore. (Affect only Linked Clones)

Desktops per Datastore – For Fiber Channel connectivity it’s recommended to keep this number between 64 and 128 due to the number of SCSI reservations per LUN. For NFS arrays it is possible to increase this number to higher values.

Concurrent Boot – Maximum number of desktops that may be concurrently booting. This number is used to define boot storm loads in conjunction with ‘Boot IOPS.’

Block Dedupe Ratio (%) – Some arrays have block de-duplication that helps to reduce the total storage capacity requirements. The de-duplication ratio for VDI deployments is normally high due to block commonality across multiple Windows desktop. This is a powerful feature but should be used with caution. *This feature only applies to Full Clones*.

Cache Read Ratio (%) – Intelligent arrays make use of DRAM and/or SSD to store most accessed blocks. Data stored in DRAM or SSD does not require backend spindle access, therefore reducing the total requirements on the backend infrastructure. This is a powerful option but should be used with caution.

Cache Write Ratio (%) – Intelligent arrays make use of DRAM and/or SSD to write data before offloading to spindles. This is a compelling option but should be utilized with caution.

Delta RAID Type – RAID type impact on performance. Select the appropriate RAID group for the Linked Clone delta datastore.

Overhead (%) – Amount of buffer to be added to the overall storage capacity requirements. 10% is recommended.

Replica Datastore – Horizon View 4.5 introduced the ability to dedicate datastores for Read IO intensive replicas.  The use of Dedicated Replica Datastore helps to reduce the amount of storage required and allow assignment of tier 1 storage for replica disks. Read more at VMware View 4.5 Linked Cloning explained.

Local Storage vSwap – Placement of VM .swsp files on local storage help in reducing the amount of shared storage required. Read more at Save [VDI] Storage using VM Swap File Host Placement.

Persistent RAID Type – RAID type impact on performance. Select the appropriate RAID group for the Linked Clone persistent disk datastores.



Screen Shot 2016-01-22 at 10.21.56 PM


External Sessions – Number of users simultaneously connecting through Horizon View Security Servers. Security Servers are used to provide external access to the desktops. Read more at A review of VMware View 5.3.1 Limits and Maximums.

vCenter HA (n+1) – Calculate high availability (n+1) for vSphere Clusters. The use of this setting increases High Availability but reduces the overall number of desktops per cluster. Default = Yes.

Backend Infrastructure – Should the calculator include the requirements for Horizon View supporting servers and services such as Connection and Security Brokers into the overall hardware (hosts and storage) requirements. Default = No.

vCenter Cluster Size – Maximum number of hosts per vCenter cluster. Read more at A review of VMware View 5.3.1 Limits and Maximums. Default = 16.

vCenter VM Limit – Maximum number of desktops per vCenter. Default = 2000. Watch Deployment Options for vCenter Server in a Horizon View Pod





Frequently Answered Questions


Q: I want to modify the “Average vCPU (MHz)” value to something like 600 – 800 MHz because we have an application that is very resource intensive. When I do that the only thing that changes in the output is “Host CPU (MHz)”. So if I change the default value of 300 to 600, the “Host CPU (MHz) output just changes to 6600. Obviously, we cannot get a host with a 6.6 GHz processor so the calculations aren’t accurate. I would think it should basically add another physical host to add more CPU resources.

A: This behavior is correct. After increasing the Average vCPU (MHz) you need to decrease the number of desktops per core to the point where you would be able to find a compatible processor clock.


Q: I put 600 concurrent boot and using the default boot IO 600. with CBRC I got 126000 if I calculate 1 desktop pool type. But when I added second pool type the replica front end IOPs simply just 2 x 126000. Is this correct or this is a calculation error? The total number of desktops within 2 type desktops will be 1200 only, and I thought the 600 concurrent boot is a global setting then it should not be multiplied by the total number of desktop types.

A: Every different desktop type will create an independent replica image that will generate IOPs. If you are creating different pools with a single image you should select only a Single Desktop Type and utilize the option ‘Number of desktop pools’ to specify the number.


Q: How do display resolution and monitor count affect my deployment?

A: The calculator follows the CPU and Memory overhead test results published by VMware for Horizon View 7 for PCoIP. While there may be differences between Horizon View and XenDesktop, PCoIP and ICA, or vSphere and vSphere, the differences in terms of percent utilization don’t change much for the vast majority of deployments.

Screen Shot 2016-04-04 at 8.37.51 PM


Q: I got error message java.lang.SecurityException: Missing required Permissions manifest attribute in main.jar.

A: Add the website to the Java exception list (http://myvirtualcloud.net). You will find instructions at http://www.java.com/en/download/help/java_blocked.xml


Q: Why do I get a red negative value at local vswap disk (storage detail tab) if I need to add the local vswap disk?

A: vswap is a negative number because it is being deducted from the total storage capacity requirement. When this option is enabled the swap disk is stored on local disks in stored in each host instead of shared storage.