When I started at Citrix 7 years ago, the question I seemed to get the most was “How many users can I get on each box?“. Of course, we were talking XenApp back then, but that’s not really the point – the point is my answer was almost always “It depends!” (which is what any Consultant who’s been around the block might say…). If they demanded a number, I sometimes said 2-400 users depending on the hardware, use case and application set. 😉
Once we started virtualizing desktops a few years ago, I started getting a new question from customers – “How many VMs can I get on each box?“. And then maybe a year and a half ago, we started figuring this stuff out a little better and began asking more specific and pertinent questions like “How many VMs per core?” and “How many IOPS per VM“? And of course, the answer still depends, but I wanted to take a minute out of my day and tell you why it depends and then give you 2 real-world examples with some actual numbers.
Before I get into the nitty-gritty, a little background. I’ve picked these 2 deployments on purpose – one represents (almost) the optimal scenario when it comes to design/configuration and minimizing IOPS. The other represents almost the worst-case scenario in terms of IOPS. I think it’s important to see the range and what factors play into it. I’ve also picked these 2 customers because the users utilizing these virtual desktops are “medium-ish” workloads in my eyes and they are both running on similar hardware – UCS blades. So it’s almost apples to apples in terms of the use case and hardware.
- Stack: XD4 + PVS561 + XS55
- VM Config: Win7 w/ 1 vCPU, 1 GB RAM and 3 GB wC drive (20 GB vDisk)
- Hardware: 2×6 w/ 96 GB RAM
- App Delivery: XA and AppStreaming for 99% of apps (only 2-3 apps installed locally!)
- Profiles: UPM w/ folder redirection
- AV: None
- Monitoring: ES enabled and redirecting monitoring data to the wC drive
- Optimizations: Yes (according to our best practices)
- Other: XS DMC enabled
- Storage: 100 GB LUNs in RAID10 (~33 VDIs/LUN)
- Density: 120 VMs/box (10 VMs/core)
- Bottleneck: Memory
- IOPS: 7 total average IOPS/VM
- Stack: XD5 + vSphere41 (with TP at the VM layer)
- VM Config: Win7 w/ 1 vCPU, 2 GB RAM and 42 GB image (only using ~29 GB on average due to TP)
- Hardware: 2×8 w/ 256 GB RAM
- App Delivery: All apps installed locally
- Profiles: Local profiles
- AV: McAfee (not “optimized” according to our best practices)
- Monitoring: ES enabled
- Optimizations: Some (definitely not all)
- Other: No VMW memory over-commitment features enabled
- Storage: 1 TB LUNs in RAID5 (23-34 VDIs/LUN depending on how you look at it with over-subscription/TP)
- Density: 110 VMs/box (6.875 VMs/core)
- Bottleneck: CPU
- IOPS: 24 total average IOPS/VM
Pretty interesting, huh? It just goes to show you how widely things can vary, even with similar hardware, use cases and application sets. And while 24 IOPS/VM might sound high, it’s really not if you’ve got a bloated image with everything locally installed and configured incorrectly (storage optimized for reads as opposed to writes, no AV exclusions, missing Win7 optimizations, etc.). It all adds up!
Flip it over to the other side and they are doing everything right. A tiny, optimized image with essentially an online and offline plug-in installed and that’s it! And in my mind, a mature application virtualization strategy and the utilization of XenApp is the key. They are abiding by the layers of cake, which means management is a cake-walk and the system is much more predictable and flexible.
Hopefully this sheds some light on why we say “It Depends!”. I also hope you enjoyed some of the other stats I provided above, such as the # of VDIs or VMDKs per LUN and the density figures.
And lastly, I’m not going to tell you who these customers are and why we made certain design decisions, so please don’t ask me. 😉 I will tell you that “Customer A” engaged Citrix Consulting, however, and “Customer B” did not. 😉
Citrix Systems, Inc.