<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>vPivot &#187; windows</title>
	<atom:link href="http://vpivot.com/tag/windows/feed/" rel="self" type="application/rss+xml" />
	<link>http://vpivot.com</link>
	<description>Scott Drummonds on Virtualization</description>
	<lastBuildDate>Wed, 01 Feb 2012 06:46:55 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>Windows Guest Defragmentation, Take Two</title>
		<link>http://vpivot.com/2010/04/14/windows-guest-defragmentation-take-two/</link>
		<comments>http://vpivot.com/2010/04/14/windows-guest-defragmentation-take-two/#comments</comments>
		<pubDate>Wed, 14 Apr 2010 21:33:56 +0000</pubDate>
		<dc:creator>drummonds</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[storage]]></category>
		<category><![CDATA[vscsistats]]></category>
		<category><![CDATA[windows]]></category>

		<guid isPermaLink="false">http://vpivot.com/?p=380</guid>
		<description><![CDATA[I have received questions about guest defragmentation tools for years.  Until today I could only pose theories as to the value of guest defragmentation.  But previous theories spawned new research and one of VMware&#8217;s partners is now putting data behind their argument that file systems in Windows virtual machines require defragmentation.  This partner, Raxco Software, [...]]]></description>
			<content:encoded><![CDATA[<p>I have received questions about guest defragmentation tools for years.  Until today I could only <a href="http://vpivot.com/2010/02/12/windows-guest-defragmentation/">pose theories as to the value of guest defragmentation</a>.  But previous theories spawned new research and one of VMware&#8217;s partners is now putting data behind their argument that file systems in Windows virtual machines require defragmentation.  This partner, Raxco Software, shared early results of this investigation with me.  Raxco used their NTFS defragmentation tool <a href="http://www.perfectdisk.com/products/business-perfectdisk11-vsphere/learn-more">PerfectDisk</a> to evaluate the impact of guest defragmentation on a single virtual machine.</p>
<p><span id="more-380"></span>Before I describe the test and its results, I want to share an important point on guest defragmentation.  Most of the computer literate are aware that <em>file</em> fragmentation&#8211;the separation of logically contiguous pieces of a file&#8211;can hurt storage performance.  But many may not realize that <em>free space</em> fragmentation is as big of an issue.  When free space is fragmented, writes take longer and files are re-fragmented rapidly.  PerfectDisk defragments files and free space and the results below benefit from both of these improvements.</p>
<p>The following steps were used to setup the test environment:</p>
<ol>
<li>A  new virtual machine was constructed with Windows Server 2008 on a single 50 GB virtual disk.  29 GB (58%) of the disk was populated with he OS and miscellaneous user files.  21 GB of free space remained.</li>
<li>They ran a tool that simulated months of user activity by reordering blocks to fragment files and free space.</li>
<li>The fragmented virtual machine was cloned.</li>
<li>PerfectDisk was run on the second virtual machine to produce a defragmented virtual disk.</li>
</ol>
<p>The Raxco team then compared the performance of the fragmented virtual machine with the defragmented one by measuring the installation time of Microsoft SQL Server 2008.  This workload was chosen because it produces a bounded, write-intensive test that can easily be monitored with <a href="http://communities.vmware.com/docs/DOC-10095">vscsiStats</a>.  Only one virtual machine was running on the host.</p>
<p>Let&#8217;s take a look at a few key graphs.</p>
<div id="attachment_384" class="wp-caption alignnone" style="width: 510px"><a href="http://vpivot.com/wp-content/uploads/2010/04/size.png"><img class="size-full wp-image-384" title="Distribution of IO Sizes" src="http://vpivot.com/wp-content/uploads/2010/04/size.png" alt="Comparing IO size" width="500" /></a><p class="wp-caption-text">The number of IOs during the application install, organized by size.</p></div>
<p>This first histogram shows IO counts by size.  You can see that IO counts for all but the largest bucket have decreased because Perfect disk is reordering files to minimize small IOs and maximize large IOs.  For the storage hardware this means greater efficiency in processing IOs.  But it also means two things to ESX:</p>
<ul>
<li>More host throughput as the fixed HBA queue is now holding larger commands.</li>
<li>Fewer virtual storage stack traversals resulting is lower CPU utilization.</li>
</ul>
<p>However, PerfectDisk not only consolidates small IOs into large IOs, it also makes files logically contiguous as they are seen by the NTFS file system. This means less work for disk controllers when mapping logical to physical clusters on disk.</p>
<p>Next we have the vscsiStats seek distance histogram which shows the shift from random to sequential IO.</p>
<div id="attachment_383" class="wp-caption alignnone" style="width: 510px"><a href="http://vpivot.com/wp-content/uploads/2010/04/seek-distance.png"><img class="size-full wp-image-383" title="Seek Distance" src="http://vpivot.com/wp-content/uploads/2010/04/seek-distance.png" alt="Distance between successive IOs" width="500" /></a><p class="wp-caption-text">The seek distance histogram shows the number of logical blocks between each successive IO.</p></div>
<p>The seek distance histogram shows a clear increase in the number of IOs that were exactly one block after the previous IO.  This pattern, demonstrated in the bucket &#8220;1&#8243; increase, reflects the increased sequential nature of accesses to the defragmented virtual disk.  In this case the fragmented disk access was 15% sequential while the defragmented disk was 30% sequential.</p>
<p>Let us next look at latency.</p>
<div id="attachment_382" class="wp-caption alignnone" style="width: 510px"><a href="http://vpivot.com/wp-content/uploads/2010/04/latency.png"><img class="size-full wp-image-382" title="IO Latency" src="http://vpivot.com/wp-content/uploads/2010/04/latency.png" alt="Number of IOs by Latency" width="500" /></a><p class="wp-caption-text">This histogram counts IOs by latency.</p></div>
<p>The latency histogram shows a decrease in all IOs across the board and a near elimination of IOs that took more than 30,000 microseconds (30 ms).  Those very slow IOs accounted for 15% of all the commands in the fragmented case.  By eliminating the 15% slowest IOs, you can imagine that the total IO performance and application execution time would greatly improve.  That is exactly what happened, as the following data show:</p>
<table id="newspaper-a">
<tbody>
<tr>
<th>Metric</th>
<th>Fragmented Disk</th>
<th>Defragmented Disk</th>
<th>Comment</th>
</tr>
<tr>
<td>Total IOs</td>
<td>166412</td>
<td>105620</td>
<td>A decrease in total IOs is a result of Windows making fewer requests for larger IOs in the defragmented case.</td>
</tr>
<tr>
<td>Mean IO Response Time</td>
<td>58.5 ms</td>
<td>3.5 ms</td>
<td>The best application metric for this test showed a 33% decrease in execution time.</td>
</tr>
<tr>
<td>SQL Server 2008 Install Time</td>
<td>45 minutes</td>
<td>30 minutes</td>
<td>The best application metric for this test showed a 33% reduction in execution time.</td>
</tr>
</tbody>
</table>
<p>Let me repeat one of those amazing data points: the average IO latency dropped from about 55 ms to less than 4 ms. While this is a phenomenal number, the increase depends on characteristics of the storage system.  Since these improvements are configuration dependent, your results may vary considerably.</p>
<p>As Raxco continues its investigation I remain cautiously optimistic of the value of guest defragmentation.  I think the exchange of small IO for large IO is indisputably a Good Thing.  However, virtual environments are very complex and I harbor some concerns about guest defragmentation in virtual environments that must be considered.  For instance:</p>
<ul>
<li>Defragmentation in your virtual machines backed by linked clones may explode those VMs&#8217; VMDKs&#8217; consumption of their VMFS volumes.</li>
<li>The value of increased sequential access in a single virtual machine will decrease some in consolidated environments.  This is because multiple virtual machines&#8217; sequential access gets interleaved at the array, increasing the randomness of the IO from the array&#8217;s point of view.</li>
<li>Guest block reordering may have negative consequences to your array, as <a href="http://vpivot.com/2010/02/12/windows-guest-defragmentation/#comment-359">Vaughn Stewart argued in a comment to my first entry on the subject</a>.</li>
<li>The value of file defragmentation may be limited when applications produce small random block access to data files, as some databases tend to do.</li>
</ul>
<p>Raxco is continuing to investigate guest defragmentation to respond to some of these concerns and provide best practices for PerfectDisk&#8217;s usage.  I will update you as the research continues.</p>
<h2>Test Details</h2>
<p>ESX Server Configuration</p>
<ul>
<li>ESX Version:                                     3.5.0 Update 1</li>
<li>Motherboard:                                 Intel S5000PSL</li>
<li>CPU Type:                                        Intel(R) Xeon(R) CPU E5345  @ 2.33GHz</li>
<li>Number of CPUs:                           2</li>
<li>Cores per CPU:                               4</li>
<li>Logical Processors:                        8</li>
<li>Memory:                                          4 GB</li>
</ul>
<p>Storage Configuration</p>
<ul>
<li>RAID controller:                              Adaptec RAID 3805</li>
<li>Number of Drives:                         4</li>
<li>Drive Type:                                       WD1001FALS 1TB 7200 RPM 32MB Cache</li>
<li>Total Capacity:                                 4.0 TB</li>
<li>Number of LUNS:                          2</li>
<li>LUN 1 RAID level:                           5</li>
<li>LUN 1 Capacity:                               2.00 TB</li>
<li>LUN 1 Partitions:                            1</li>
<li>LUN 1 Name:                                   IOTesting</li>
<li>LUN 2 RAID level:                           5</li>
<li>LUN 2 Capacity:                               744.75 GB</li>
<li>LUN 2 Partitions:                            1</li>
</ul>
<p>Datastore Configuration</p>
<ul>
<li>Number of Datastores:                2</li>
<li>Datastore 1 Name:                        IOTesting</li>
<li>Number of VMs:                            2</li>
<li>Capacity:                                            2.00 TB</li>
<li>Target LUN:                                      LUN 1 (from Storage configuration)</li>
<li>Datastore 2 Name:                        ISO</li>
<li>Number of VMs:                            0</li>
<li>Capacity:                                            744.75 GB</li>
<li>Target LUN:                                      LUN 2 (from Storage configuration above)</li>
</ul>
<p>VM Configuration</p>
<ul>
<li>Number of VMs:                            2</li>
<li>Operating System:                        Windows Server 2008 R2 (64-bit)</li>
<li>Memory:                                           2GB</li>
<li>Number of CPUs:                           2</li>
<li>SCSI Controller:                               LSI Logic (no SCSI bus sharing)</li>
<li>Number of Disks:                           1</li>
<li>Size of Disk:                                      50 GB</li>
<li>Provisioning Type:                         Thick</li>
<li>Backing Datastore:                        IOTesting</li>
<li>Virtual Memory:                             none (pagefile disabled)</li>
<li>Network:                                            disabled</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://vpivot.com/2010/04/14/windows-guest-defragmentation-take-two/feed/</wfw:commentRss>
		<slash:comments>28</slash:comments>
		</item>
		<item>
		<title>Windows Guest Defragmentation</title>
		<link>http://vpivot.com/2010/02/12/windows-guest-defragmentation/</link>
		<comments>http://vpivot.com/2010/02/12/windows-guest-defragmentation/#comments</comments>
		<pubDate>Fri, 12 Feb 2010 16:22:55 +0000</pubDate>
		<dc:creator>drummonds</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[pex]]></category>
		<category><![CDATA[storage]]></category>
		<category><![CDATA[vmkernel]]></category>
		<category><![CDATA[windows]]></category>

		<guid isPermaLink="false">http://vpivot.com/?p=288</guid>
		<description><![CDATA[Today at VMware Partner Exchange I had a lunchtime discussion with a partner of ours that makes a Windows file system (NTFS) defragmentation tool. He related anecdotes of incredible performance acceleration credited to defragmentation and quoted a few numbers based on his test environment. When he asked me what VMware&#8217;s recommendations were on the subject [...]]]></description>
			<content:encoded><![CDATA[<p>Today at VMware Partner Exchange I had a lunchtime discussion with a partner of ours that makes a Windows file system (NTFS) defragmentation tool.  He related anecdotes of incredible performance acceleration credited to defragmentation and quoted a few numbers based on his test environment.  When he asked me what VMware&#8217;s recommendations were on the subject I remained uncharacteristically silent.  Do we have best practices on this?</p>
<p><span id="more-288"></span>When people ask me about file system fragmentation I explain that fragmentation can come from two sources: the guest file system or VMFS.  In 2009 we included experiments in our <a href="http://www.vmware.com/pdf/vsp_4_thinprov_perf.pdf">thin provisioning white paper</a> that showed that both internal and external fragmentation in VMFS have no significant effect on performance.  As for guest fragmentation, VMware has avoided the business of optimizing native operating systems so there is no extant, official guidance.</p>
<p>More precisely, the large number of mappings from the guest file to the disk make it difficult to know how changes to each can impact the system&#8217;s performance as a whole.  But in talking with this partner I realized that there are two inescapable truths that suggest guest defragmentation is critical in a virtualized environment:</p>
<ol>
<li>Defragmentation can decrease the number of disk commands and the resultant IOPS.</li>
<li>The fewer IOs, the more efficient the virtualization.</li>
</ol>
<p>Guest defrag tools will order each file&#8217;s blocks sequentially in the guest file system.  This will enable the guest to make a few number of calls to larger, contiguous data than had the blocks been separated on the guest file system.  By making fewer calls to larger blocks, the following things happen:</p>
<ul>
<li>The array can leverage its faster sequential access capabilities to improve storage throughput.</li>
<li>The hypervisor handles fewer SCSI messages from the guest resulting in lower overhead.</li>
<li>The smaller number of commands results in fewer outstanding operations in the 32-element HBA queue, which allows more virtual machines to access the storage concurrently.</li>
</ul>
<p>I have not found out how much consolidated workloads have to gain from guest defragmentation.  Nor have I quantified the impact to shared storage of a shift from a larger number of small commands to a smaller number of large commands.  But I am going to work with this partner and see if we can publish some numbers in 2010.</p>
]]></content:encoded>
			<wfw:commentRss>http://vpivot.com/2010/02/12/windows-guest-defragmentation/feed/</wfw:commentRss>
		<slash:comments>10</slash:comments>
		</item>
		<item>
		<title>VMware Perfmon Counters Missing on vSphere?</title>
		<link>http://vpivot.com/2010/01/26/vmware-perfmon-counters-missing-on-vsphere/</link>
		<comments>http://vpivot.com/2010/01/26/vmware-perfmon-counters-missing-on-vsphere/#comments</comments>
		<pubDate>Wed, 27 Jan 2010 04:37:09 +0000</pubDate>
		<dc:creator>drummonds</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[esx]]></category>
		<category><![CDATA[perfmon]]></category>
		<category><![CDATA[windows]]></category>

		<guid isPermaLink="false">http://vpivot.com/?p=264</guid>
		<description><![CDATA[I was recently shown a problem where the ESX Perfmon counters we added to vSphere 4.0 virtual machines were not appearing in Windows virtual machines as of vSphere 4.0 U1.  The problem stems from an issue with mofcomp, which I will briefly describe below. For the impatient, the workaround is to manually uninstall and then [...]]]></description>
			<content:encoded><![CDATA[<p>I was recently shown a problem where the ESX Perfmon counters we added to vSphere 4.0 virtual machines were not appearing in Windows virtual machines as of vSphere 4.0 U1.   The problem stems from an issue with mofcomp, which I will briefly describe below.  For the impatient, the workaround is to manually uninstall and then reinstall VMware Tools.  It also appears that the counters can be added by running <a href="http://e-scott.net/share/vmStatsProvider_006_release.exe">vmStatsProvider</a>, as I described in <a href="http://vpivot.com/2009/09/17/using-perfmon-for-accurate-esx-performance-counters/">a previous article</a>.</p>
<p><span id="more-264"></span><a href="http://msdn.microsoft.com/en-us/library/aa392389%28VS.85%29.aspx">mofcomp</a> is a tool provided by Microsoft and integrated with Windows that is used to register WMI classes such as VMware&#8217;s Perfmon counters with Windows.  For reasons that we do not entirely understand, but are tracking with a PR, mofcomp is failing during the tools upgrade on some systems.  Ideally a reinstall/upgrade/repair of VMware Tools will force a rerun of mofcomp and register the classes.  But the tools installer is not configured to do this today as a mofcomp failure was not anticipated by the developers that wrote the VMware Tools installer.</p>
<p>The key to the fix is to force mofcomp to run a second time.  This can be done in two ways:</p>
<ul>
<li>Uninstall VMware Tools and then reinstall them.  Unlike a reinstall (also called a &#8220;repair&#8221; or &#8220;upgrade&#8221;) this will force mofcomp to be run during the second install.  It should work the second time.  If it does not, I would be interested to know.</li>
<li>Install the counters using the <a href="http://ftpsite.vmware.com/download/drummonds/vmStatsProvider_006_release.exe">vmStatsProvider executable</a>, which <a href="http://vpivot.com/2009/09/17/using-perfmon-for-accurate-esx-performance-counters/">I documented previously</a>.</li>
</ul>
<p>Sorry for this problem, everyone.  We are tracking this issue and plan to improve the robustness of the installer as soon as possible.</p>
]]></content:encoded>
			<wfw:commentRss>http://vpivot.com/2010/01/26/vmware-perfmon-counters-missing-on-vsphere/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>Using Perfmon For Accurate, ESX Performance Counters</title>
		<link>http://vpivot.com/2009/09/17/using-perfmon-for-accurate-esx-performance-counters/</link>
		<comments>http://vpivot.com/2009/09/17/using-perfmon-for-accurate-esx-performance-counters/#comments</comments>
		<pubDate>Thu, 17 Sep 2009 18:00:53 +0000</pubDate>
		<dc:creator>drummonds</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[esx]]></category>
		<category><![CDATA[perfmon]]></category>
		<category><![CDATA[windows]]></category>

		<guid isPermaLink="false">http://vpivot.com/?p=15</guid>
		<description><![CDATA[[An update to an old community post with more information on the tool.] My colleague in product management, Praveen Kannan, has been working to extend Perfmon to show some ESX performance counters. This capability is automatically installed with VMware Tools on vSphere 4. But Praveen and I have made a stand-alone version available to those [...]]]></description>
			<content:encoded><![CDATA[<p><em>[An update to an <a href="http://communities.vmware.com/blogs/drummonds/2009/06/18/using-perfmon-for-accurate-esx-performance-counters">old community post</a> with more information on the tool.]</em></p>
<p>My colleague in product management, Praveen Kannan, has been working to extend Perfmon to show some ESX performance counters.  This capability is automatically installed with VMware Tools on vSphere 4.  But Praveen and I have made a stand-alone version available to those of you that are still on VI3.  <a href="http://e-scott.net/share/vmStatsProvider_006_release.exe">Download it here</a> to give it a try.  [See note below if that link is dead.]</p>
<p><span id="more-15"></span>To install, place the file in an appropriately-named directory on any Windows VM on VI3.  Double-click the executable, which will self-extract the files into the same directory.  Run &#8220;install.bat&#8221; and you&#8217;re done.</p>
<p>Once you bring up Perfmon you&#8217;ll see two new performance objects on your computer: &#8220;VM Memory&#8221; and &#8220;VM Processor&#8221;.  These objects contain counters exposed by ESX that accurately reflect the VM&#8217;s memory and CPU usage.  Here&#8217;s Perfmon on my test VM after I&#8217;ve installed the tool.</p>
<p><img class="jive-image-thumbnail jive-image" src="http://communities.vmware.com/servlet/JiveServlet/downloadImage/38-4616-6039/new_counters.png" alt="new_counters.png" width="620" /></p>
<p>This makes collection of host stats a breeze.  Windows Management Instrumentation (WMI) programs can now easily get access to reliable host statistics.  And anyone with access to Perfmon can get see their VM&#8217;s resource usage.  Unlike guest-based statistics, the host-statistics shown through these counters accurately reflect resource usage in the presence of virtualization overheads and time slicing of VMs.</p>
<p>Disclaimer:</p>
<blockquote><p><em>This is a pre-release &#8220;sneak peak&#8221; version. Eventually this tool will be available for download on vmware.com and supported by VMware. But today there is no support for this tool and you&#8217;re using it &#8220;as-is&#8221;.  Use at your own risk and do not contact VMware support for help with this release.</em></p></blockquote>
<p>That&#8217;s VMware&#8217;s official position on this tool.  But feel free to comment here with any ideas about this great new feature.</p>
<h2>If the Download Link Is Dead</h2>
<p>Until the DLL is made available as a standalone product, we are hosting it on the VMware FTP server, which is swept regularly.  If the link is dead that means that the binary has been deleted to save space.  Leave me a comment here if you see this and I will again upload the binary for download.</p>
]]></content:encoded>
			<wfw:commentRss>http://vpivot.com/2009/09/17/using-perfmon-for-accurate-esx-performance-counters/feed/</wfw:commentRss>
		<slash:comments>23</slash:comments>
		</item>
	</channel>
</rss>

