The New XenApp – Reducing IOPS to 1

As we all know, IOPS are the bane of any application and virtualization project. If you don’t have enough, users will suffer. If you have too many, you probably spent too much money and your business will suffer. So we are always trying to find ways to more accurately estimate IOPS requirements as well as finding ways to reduce the overall number.

About 5 months ago, I blogged about IOPS for Application Delivery in XenDesktop 7.0. In the blog, I explained that for the XenApp workload, Machine Creation Services, when used in conjunction with Windows Server 2012 Hyper-V, required a significantly fewer number of IOPS than Provisioning Services. With the release of the 7.5 edition of XenApp and XenDesktop, I wanted to see what the latest numbers were on Windows Server 2012R2 Hyper-V while using the same LoginVSI medium workload. In addition, after reading Miguel Contreras’s blog on “Turbo Charging IOPS“, I wanted to see what impact the Provisioning Services “Ram Cache with Overflow to Disk” option would have on the results.

If you aren’t familiar with this caching option, it is fairly new and recently improved and I suggest you read Miguel’s blog “Turbo Charging IOPS“, to learn more. But essentially, we use RAM for the PVS write cache that will move portions to disk as RAM gets consumed, thus overcoming stability issues you would have with just a RAM Cache only option as the cache filled up. For this test, we allocated 2GB per XenApp VM. We only have 7 XenApp 7.5 VMs on the host, requiring 14GB total.

The results are impressive (at least to me they are).

On average, each XenApp 7.5 user requires 1 IOPS. If you want to be safe and go with the 95th Percentile, you have roughly 2 IOPS per user. We were able to achieve this without any complex configurations. We were able to achieve this without adding any new hardware to our servers. We were able to achieve this by literally flipping a switch within Provisioning Services. This is done with a little RAM and spinning disks only, no SSDs.

Some of you might also be wondering why MCS is lower than PVS (Disk Cache). This is one of the intrinsic benefits of MCS when deploying a Windows 2012R2 XenApp server on Windows Server 2012R2 Hyper-V. MCS is able to take advantage of the larger block sizes within the new .VHDX files, thus reducing IOPS requirements.

I keep hearing people say that Citrix needs to show some love to Provisioning Services as it is such a great product. I think the RAM Cache with Overflow to Disk helps.