Windows 7 IOPS for VDI: Deep Dive
VDI May 20th, 2011I had the pleasure recently of presenting at both BriForum and the E2E conference. Both these events are excellent resources for anyone wishing to know more about Desktop Virtualisation and I am always proud to be surrounded by other speakers who I regard as the absolute best in the business.
My topic of choice was the same as the title for this post Windows 7 IOPS for VDI: Deep Dive. As I hate having lots of text on slides when presenting I created an accompanying document which I have now made available for download here:
Windows 7 IOPS for VDI: Deep Dive (Short form)
Please comment if you have any requests for more testing or a particular update to the document.
If for any reason the above link doesn’t work here is a mirror.
May 21st, 2011 at 11:36 pm
Many thanks for this great paper.
Alex
May 30th, 2011 at 9:59 am
[...] Source: http://www.jimmoyle.com/2011/05/windows-7-iops-for-vdi-deep-dive/ [...]
May 30th, 2011 at 1:57 pm
Great job, IOPS is one of the things that many of our customers have been dealing with. We will be sharing this information very widely.
May 31st, 2011 at 3:47 pm
[...] May 31st, 2011 | Atlantis Computing virtualization consultant Jim Moyle released a white paper (28 pages) on Virtual Desktop Infrastructure (VDI) Input/Output operations per second [...]
May 31st, 2011 at 5:36 pm
Jim – thanks for a great paper. When calculating total required IOPS for a SAN, but when using PVS in distributed HA mode using local disks, this would take off a large part of the Read IOPS requirements, but how much? I am assuming that some reads still need to be sent to the cache/pagefile drive, so what is a safe calculation in this case? Thanks.
June 3rd, 2011 at 3:25 am
Jim
I guess this is not correct, what you mention on page 13:
“The big problem with this is that ESX has no clue how much of the guest memory is being used. It basically removes memory from the VM and hopes it won’t lead to swapping”
Thats not true. ESX has the intelligence to claim back unused VM memory, and as a last resource, it all VM memory is being used, it relies on the Guest OS to do the decision.
Refer to this document for complete explanation:
http://www.vmware.com/files/pdf/perf-vsphere-memory_management.pdf
” If the virtual machine has plenty of free guest physical memory, inflating the balloon will induce no paging and will not impact guest performance. In this case, as illustrated in Figure 6, the balloon driver allocates the free guest physical memory from the guest free list. Hence, guest-level paging is not necessary. However, if the guest is already under memory pressure, the guest operating system decides which guest physical pages to be paged out to the virtual swap device in order to satisfy the balloon driver’s allocation requests. The genius of ballooning is that it allows the guest operating system to intelligently make the hard decision about which pages to be paged out without the hypervisor’s involvement.”
June 7th, 2011 at 5:34 pm
@Fernando
I believe the text you quote is saying the same thing as I am, VMware cannot see inside the VM to gauge free memory, MS don’t have a mechanism to read that from outside the OS.
Hyper-V dynamic memory is trying to do this, but it even took MS years to implement (it was slated for the first release)
ESX will inflate the balloon whether the guest is under memory pressure or not. There is no way to stop the ballooning if the guest VM is under memory pressure, hence it ‘hopes’ there is enough free memory to avoid paging.
Thanks
Jim
July 8th, 2011 at 7:15 pm
Jim, great paper. Trying to understand your calculations on page 19:
“So given this information we can work out how long a boot should take if we allow 20 IOPS per VM. I have also included the write IOPS for both stages.
(10029 IOs(boot) + 10437 IOs(agent) + 3668 IOs(write))/
20 IOPS per VM
= a boot time of 1,206.7 seconds per VM
This will give us greater than a 20 minute boot per VM if we allow 20 IOPS.
Longer than 5 minutes will generally cause some of the Windows instances to fail to boot, due to storage latency, not to mention anger users. In this case, we must allow the VMs to be booted in batches. To try and keep the boot time below five minutes, the VMs in this example would need to be booted in 4- 5 stages. This would take approximately an hour with appropriate gaps between stages to ensure that the previous staged boots completed successfully.”
Jim, please explain further what you are breaking into 4 to 5 stages to get a 20 miniute boot down to 5 minutes.
Thanks
September 19th, 2011 at 6:45 pm
Jim,
First off, AWESOME paper! Your paper however for begs a few questions/comments:
1) Beginning on p17 you discuss Windows 7 Boot in detail. What was the total size of the VM disk? How much of that was consumed?
2) A word of caution – you use the SCALE IOPS when you sometimes mean IOPS (input/output per second) and sometimes IOs (total input/ouput operations). Could you be a little more consistent in your use in future release? For instance on p19 you say “Initial boot read IOPS: 10029″ and here I believe you mean total number of input/output operations and not per second.
3) Where did you arrive at the # 3668 write IOs? (I understand where 10029 boot IOs and 10437 agent IOs come from)
4) On p24 with discussion of Microsoft Security Essentials, what was the size of the VM disk? How much of that was used?
5) Do you have comparable desktop measurement #’s for Windows XP VM’s?
Thanks again for GREAT info! Keep up the good work.
September 19th, 2011 at 8:57 pm
One additional question:
6) What is the IO block size that was being measured? (4KB, other)
December 14th, 2011 at 10:43 am
Hello Jim, very well written document. The examples which you have shown are easy to understand and yes you are right, Windows 7 and IOPS is the most challenging resources of desktop virtualization.
April 11th, 2012 at 3:28 am
[...] While my test is far from scientific, or for that matter even fully simulating a VDI workload it does illustrate that the sequential write IO they preach really does work. VDI disk IO block sizes in real life are variable, with lots of IO happening at the 4K block sizes but it’s also common to see larger block sizes. I did two tests, one at 80% write, 20% read – 75% random and one at 50% read, 50% write, 75% random. This Iometer test was loosely based on some settings that Jim Moyle outlined in his article here http://www.jimmoyle.com/2011/05/windows-7-iops-for-vdi-deep-dive/ [...]
April 9th, 2013 at 6:37 am
what’s shakin’, bacon, from Hidden Hills, California I want to tell you, I liked this post. However, it is weird how I ended up on your blog. I searched for candyland party bus on YouTube and ended up on your website. I must say I do like your site and will check back soon. But I need to find the limo I was originally looking for first. Have a wonderful day! Farewell.
May 8th, 2013 at 6:45 am
This means that you get other sites to your link to yours and you return the favor.
You have an idea of what to do first and make a plan for your succeeding
steps. But architecture is not restricted to
the creation of buildings; it has spread its legs in different fields such as
car designing, website designing, etc.