An easy-to-use VDI IOPS calculator

So you've heard all about the I/O performance demands of Virtual Desktop Infrastructure (if not, see "What's all this talk about VDI and IOPS?"). But how can you determine how many IOPS you really need? While it's best to take detailed measurements, doing so can be complicated, expensive and time-consuming. What if you just want a quick ballpark number?

This calculator provides a quick way to guesstimate your I/O needs for almost any type of VDI - persistent or non-persistent, with or without Unidesk. Instead of having to collect a ton of data with complicated measurements, the calculator uses some simple assumptions about desktop I/O and easy-to-gather numbers from your existing desktops.

The idea is to build a model based on a typical heavy I/O load condition on a desktop, usually around 8-9am when everybody arrives for work. This is the time when your storage array will be at peak load for logins, profiles, apps, etc. In most cases, if you optimize around this time window and factor in the average desktop load, you should have plenty of headroom for everything else.

Unidesk VDI IOPS Calculator

Base Assumptions

When logging in, how long is the disk busy?
(LoginBootTime)
seconds to login
What is the primary login duration?
(StormDuration)
minutes for most users to login
What percentage login during that time?
(StormPercentage)
Percent users login
How concentrated is the peak login period?
(PeakFactor)
Percent more users than average
What IOPS are required during login?
(StormIOPS)
IOPS peak (per desktop)
+ Show advanced options  

Workload One

Expected IOPS load?
(SteadyStateIOPS1)
IOPS average
Number of users (or desktops)?
(Users1)
Users
+ Add Another Workload

Workload Two

Expected IOPS load?
(SteadyStateIOPS2)
IOPS average
Number of users (or desktops)?
(Users2)
Users
+ Add Another Workload

Workload Three

Expected IOPS load?
(SteadyStateIOPS3)
IOPS average
Number of users (or desktops)?
(Users3)
Users
+ Add Another Workload

Workload Four

Expected IOPS load?
(SteadyStateIOPS4)
IOPS average
Number of users (or desktops)?
(Users4)
Users
+ Add Another Workload

Workload Five

Expected IOPS load?
(SteadyStateIOPS5)
IOPS average
Number of users (or desktops)?
(Users5)
Users
 

Now What?

Now that your have your IOPS numbers, you can take a closer look at your storage options and balance your I/O needs across one or more arrays. Keep in mind that for larger deployments you will need to balance the storage load across multiple RAID sets (not just across LUNs, as those can share a single RAID set). For more information about how many IOPS a SAN can deliver, check out my blog "Making sense of VDI SAN performance."

How the Calculator Works

Here are more details for those of you who want to know how the IOPS calculator works. It will never be as accurate as a long-running actual measurement of I/O load on a correctly configured and loaded virtual desktop configuration, but hopefully it provides quick numbers that help in designing for VDI success.

First, we gather some basic information about your current non-VDI setup:

  • How many desktops are you supporting?
  • What time do most people start their work day?
  • How many people don't start work at the usual time?
  • How active are the workload(s) - heavy, medium, light?

Then we ask you to do one measurement: How long does it take a regular, non-virtual desktop to login (time how long the disk light stays fairly busy)

That's all that's needed for a basic estimate - punch those numbers into the calculator above and you will get a rough estimate of the number of IOPS needed. For a more precise measurement, you can also adjust the "advanced" fields. Play with the default for "peak IOPS" (we base it on a standard 7,200 RPM disk drive, or 90 IOPS), or adjust the "peak factor," which accounts for the fact that people will login in peaks and valleys. Adjust as many of the advanced fields as you want, but for most VDI use cases, the defaults should be close enough.

This calculator was built by Unidesk Founder and Chief Technology Officer, Chris Midgley – find Chris on Twitter @cmidgley.