Last week, Project VRC released the results of their State of the Industry Survey, and upon reading it I discovered several interesting things (which I wrote about last week). Besides the fact that significantly more people are doing non-persistent VDI than just about everybody thought, and that only about 50% of the organizations are using something beyond scripts and GPOs to manage their user environment, I was surprised to see that over 34% of people are using Windows 7 x64 as the guest OS in VDI environments! This revelation goes against just about every best practice I can recall hearing, and I can't imagine 34% of the organizations have uses cases that demand 64-bit OSes. I want to look into the implications of this a bit, in hopes of either discovering why companies are doing this or educating as to why they shouldn't.
From the survey, we can see that themajority of people are using Windows 7 x64 on their systems, followed by 29% of people running Windows 7 x86 and 25% (gasp!) on Windows XP x86. The Windows XP number surprises me because you'd think that if you were moving to VDI, you'd be upgrading your OS as well, especially with the end of Windows XP approaching in just over a year. That is an article for another day, perhaps, but suffice it to say that those 25% should be getting their migration in gear quickly, either to Windows 7 or to Windows Server 2003 R2.
Windows 7 x64 is in widespread use on physical desktops in organizations. The vast majority of people that I talk to are replacing Windows XP desktops with new hardware running Windows 7 x64. In fact, it seems most of the people that aren't deploying the 64-bit version are doing so for some application compatibility problem that requires 32-bit (for instance, the need to support 16-bit apps or installers). Of course, there are other solutions for this, but at least they got to Windows 7. On the desktop side, hardware is cheap and the enhancements are valuable, so the impact isn't noticed or cared about.
What is that impact, though, and how does it translate to VDI? It's commonly tossed about that Windows 7 x64 consumes somewhere around 200MB more memory than it's x86 equivalent, and if you multiply that by your VDI users, this can add up quickly. If you have too little memory in your machines, you're paging more often and require more storage resources, and if you address it by adding memory, there's a cost associated with that, too. VMware's own Server Storage Sizing Guide suggests that Windows 7 x64 VMs require 2GB of memory (as opposed to 1GB for x86), 2 vCPUs (as opposed to one for x86), and an additional 4GB of storage space. Those numbers effectively cut capacity in half, while increasing storage requirements.
What we don't know, based on the survey, is the amount of memory these machines are using, and if they've been deemed to require more than the 3GB of memory that a 32-bit machine can address. If that's the case, then 64-bit it is. We also don't know the breakdown of use cases, applications, or how many Windows 7 x64 VMs are used. The question was simply "Which OS is/are used for the desktop VMs?" So it could be that 34% of organizations have just a few x64 guest OSes, but if that were the case I'd expect to see far more than a 29% share for Windows 7 x86. We also don't know if the organizations are using mostly 32-bit or 64-bit apps, which would be important since there is more overhead using a 32-bit app on a 64-bit machine.
Based on the survey, it appears that most organizations do at least some sort of testing ahead of time, so I would imagine that most of the implementations of x64 Windows 7 have done so knowing the impact it has on their systems. Perhaps the real-world resource implications aren't as large or impactful as is commonly believed. It could also be that the experience or performance benefits outweigh any costs associated with added capacity. Of course, it could also be the "It's what we do on our physical desktops, so it's what we do in our VDI desktops" mindset, too. In a way, that might make some sense. Rather than having two platforms to worry about, you'd just have one, and aren't we at least somewhat willing to pay for that convenience?
This year at both BriForum London and Chicago, Ruben Spruijt and Jeroen van de Kamp are giving a best practices and performance session using results obtained by Project VRC, so hopefully that will shed some light on the situation. I've yet to see a comprehensive, multiple platform comparison between the two, so I'm looking forward to that session. In the meantime, what do you have to say? Do you use x64, or x86? What has your experience been with either?