<?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/"
	xmlns:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>Pivot Point</title>
	<atom:link href="http://vpivot.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://vpivot.com</link>
	<description>Virtualization Musings from Scott Drummonds</description>
	<lastBuildDate>Wed, 17 Mar 2010 22:23:28 +0000</lastBuildDate>
	<generator>http://wordpress.com/</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<cloud domain='vpivot.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://www.gravatar.com/blavatar/37014c115970be99ec7fbcfa9c93dc99?s=96&#038;d=http://s2.wp.com/i/buttonw-com.png</url>
		<title>Pivot Point</title>
		<link>http://vpivot.com</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="http://vpivot.com/osd.xml" title="Pivot Point" />
	<atom:link rel='hub' href='http://vpivot.com/?pushpress=hub'/>
		<item>
		<title>vSphere 4.0, Hyper-Threading, and Terminal Services</title>
		<link>http://vpivot.com/2010/03/17/vsphere-4-0-hyper-threading-and-terminal-services/</link>
		<comments>http://vpivot.com/2010/03/17/vsphere-4-0-hyper-threading-and-terminal-services/#comments</comments>
		<pubDate>Wed, 17 Mar 2010 22:23:28 +0000</pubDate>
		<dc:creator>Scott</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[benchmarking]]></category>
		<category><![CDATA[hyper-threading]]></category>
		<category><![CDATA[intel]]></category>
		<category><![CDATA[scheduler]]></category>
		<category><![CDATA[terminal services]]></category>
		<category><![CDATA[vsphere]]></category>

		<guid isPermaLink="false">http://vpivot.com/?p=333</guid>
		<description><![CDATA[I recently wrote a blog article detailing Hyper-Threading (HT) and its effect on vSphere.  An astute reader pointed out, a recent update to Project VRC&#8217;s terminal services analysis suggests disappointment with HT on vSphere.  We spent a lot of time looking at those results to understand why they contradicted the body of performance data, which [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=vpivot.com&blog=9504545&post=333&subd=vpivot&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<p>I recently wrote <a href="http://vpivot.com/2010/03/06/hyper-threading-on-vsphere/">a blog article detailing Hyper-Threading (HT) and its effect on vSphere</a>.  An astute reader pointed out, a recent update to <a href="http://www.virtualrealitycheck.net/">Project VRC</a>&#8217;s terminal services analysis suggests disappointment with HT on vSphere.  We spent a lot of time looking at those results to understand why they contradicted the body of performance data, which show HT offering 10-30% gain on vSphere. What we discovered led us to create a vSphere patch that would allow users to improve performance in some benchmarking environments.</p>
<p><span id="more-333"></span>Among the many results presented by VRC, the configurations that most perplexed us were the two and four virtual machine configurations, each with four vCPUs per virtual machine.  The configuration with two virtual machines looked good and matched our internal numbers.  In this configuration there are a total of eight vCPUs on the host which maps each to its own physical core on the Xeon 5500 series processor.  The problem arose when the virtual machine count was increased to four, resulting in 16 total vCPUs.  In this configuration each vCPU is paired with one logical, Hyper-Threaded core.  Project VRC showed this configuration supporting no more desktops than the two-VM configuration, which suggests no value to Hyper-Threading on this configuration.</p>
<p>It took us some time to understand the reason for these results, but we eventually identified a very specific condition where ESX&#8217;s scheduler enforces fairness in scheduling vCPUs at at cost of throughput.  ESX&#8217;s scheduler has long be subject of the intensive scrutiny of a large number of VMware engineers to guarantee fair access to the processor for each virtual machine.  It is because of this fairness that VMware&#8217;s customers can rely on CPU resource controls.  But, when fairness goes too far, throughput may be sub-optimal.</p>
<p>Hyper-Threading presents particular problems to fairness because of the non-linear performance it delivers.  A thread will run at one speed when it has full access to a physical core, at another speed when it is sharing a core, and at third speed when sharing a core with a different thread.  As a result, ESX&#8217;s scheduler will sometimes pause a thread to enforce fairness.  These pauses are more common when Hyper-Threading is present to account for its lack of uniformity in thread performance.  If the host lacks vCPUs that are ready to run, the result is CPU utilization below saturation, leaving CPU cycles unused.</p>
<p>There are three specific conditions that can excite this condition:</p>
<ol>
<li>A Xeon 5500 series processor is present with Hyper-Threading enabled,</li>
<li>CPU utilization is near saturation, and</li>
<li>A roughly one-to-one mapping between vCPUs and logical processors.</li>
</ol>
<p>In this scenario, VMware vSphere favors fairness over throughput and sometimes pauses one vCPU to dedicate a whole core to another vCPU, eliminating gains provided by Hyper-Threading.  In cases outside of these three conditions, the performance of VMware vSphere 4 meets the high expectations of VMware&#8217;s R&amp;D team and its customers.  Of course production environments rarely (never?) have a one-to-one ratio of vCPUs to logical processors.  This occurs when there are only four 4-way virtual machines on a Xeon 5500 system, for example.</p>
<p>But environments such as Project VRC&#8217;s are simplifications of production environments meant to understand the capabilities of virtual platforms.  VMware has provided a patch to Project VRC that will allow them to improve throughput in their environment.  We are going to release this patch and its documentation to the general public within a couple of weeks.  I do not expect that any of VMware&#8217;s customers will benefit from the changes is allows, but I will later document the patch and its usage for anyone that cares to experiment.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/vpivot.wordpress.com/333/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/vpivot.wordpress.com/333/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/vpivot.wordpress.com/333/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/vpivot.wordpress.com/333/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/vpivot.wordpress.com/333/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/vpivot.wordpress.com/333/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/vpivot.wordpress.com/333/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/vpivot.wordpress.com/333/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/vpivot.wordpress.com/333/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/vpivot.wordpress.com/333/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=vpivot.com&blog=9504545&post=333&subd=vpivot&ref=&feed=1" />]]></content:encoded>
			<wfw:commentRss>http://vpivot.com/2010/03/17/vsphere-4-0-hyper-threading-and-terminal-services/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/a2124d2a00c4c819fa548fa4453db6a5?s=96&#38;d=http%3A%2F%2F0.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96&#38;r=G" medium="image">
			<media:title type="html">drummonds1974</media:title>
		</media:content>
	</item>
		<item>
		<title>Hyper-Threading on vSphere</title>
		<link>http://vpivot.com/2010/03/06/hyper-threading-on-vsphere/</link>
		<comments>http://vpivot.com/2010/03/06/hyper-threading-on-vsphere/#comments</comments>
		<pubDate>Sat, 06 Mar 2010 18:05:38 +0000</pubDate>
		<dc:creator>Scott</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[cpu]]></category>
		<category><![CDATA[hyper-threading]]></category>
		<category><![CDATA[intel]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[scheduler]]></category>
		<category><![CDATA[vmkernel]]></category>
		<category><![CDATA[vmmark]]></category>
		<category><![CDATA[vsphere]]></category>

		<guid isPermaLink="false">http://vpivot.com/?p=328</guid>
		<description><![CDATA[I continue to receive many questions from our customers on the expected performance gains of the new version of Hyper-Threading in Intel&#8217;s Core i7 processors.  The answer requires a little bit of discussion on Hyper-Threading, a little bit on ESX, and comes with some performance data.  If you are still interested, read on.
On [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=vpivot.com&blog=9504545&post=328&subd=vpivot&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<p>I continue to receive many questions from our customers on the expected performance gains of the new version of Hyper-Threading in Intel&#8217;s Core i7 processors.  The answer requires a little bit of discussion on Hyper-Threading, a little bit on ESX, and comes with some performance data.  If you are still interested, read on.</p>
<p><span id="more-328"></span>On VI3, many of VMware&#8217;s customers disabled Hyper-Threading on their older, Netburst architecture Intel processors.  Intel has vaguely described the new Hyper-Threading as more efficient than the previous generation and I believe this to be due to a shorter pipeline and an improved ability to context switch pipeline stage data.  Long pipelines&#8211;such as the Netburst era Xeons of model numbers x1xx and x2xx&#8211;are more likely to suffer bubbles during context switches and are therefore penalized versus shorter pipeline products, such as the Core i7.  Furthermore, by pushing and restoring pipeline stage data during a hardware context switch, the new HT can reduce pipeline bubbles.</p>
<p>But the gains vSphere users experience as a result of the new Hyper-Threading also comes from changes in ESX.  ESX&#8217;s scheduler must make decisions as to when to co-locate two worlds on a physical core to take advantage of Hyper-Threading.  In some conditions the scheduler will perform this co-location and in others it will allow a world to run on the core by itself.  The decision to execute worlds concurrently instead of serially on a physical core can be informally called the scheduler&#8217;s <em>trust</em> of Hyper-Threading.  The vSphere scheduler <em>trusts</em> Hyper-Threading more than the VI3 scheduler did.  This amplifies the effect of HT.</p>
<p>I am now going to bore you with a disclaimer before I give you any data showing the effect of Hyper-Threading.  The value of HT will vary from workload to workload and the ultimate authority of HT&#8217;s value is the end-user.  The following numbers are the result of informal analysis and VMware that should only be used as a guide in your own analysis.  Please do not make purchasing decisions on this information, which is devoid of the detail we would normally commit to a white paper.</p>
<table id="newspaper-a">
<tbody>
<tr>
<th>Workload</th>
<th>Observed Throughput Gain Due to HT</th>
</tr>
<tr>
<td>VMmark</td>
<td>24%</td>
</tr>
<tr>
<td>SPECjbb</td>
<td>10%</td>
</tr>
<tr>
<td>VMmark</td>
<td>19%</td>
</tr>
</tbody>
</table>
<p>In addition to the gains we informally cite here, I can say that we have not yet seen a workload where the new Hyper-Threading slows down consolidated performance.  As far as we can tell, the new Hyper-Threading should be left enabled in 100% of virtualized environments.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/vpivot.wordpress.com/328/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/vpivot.wordpress.com/328/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/vpivot.wordpress.com/328/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/vpivot.wordpress.com/328/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/vpivot.wordpress.com/328/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/vpivot.wordpress.com/328/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/vpivot.wordpress.com/328/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/vpivot.wordpress.com/328/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/vpivot.wordpress.com/328/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/vpivot.wordpress.com/328/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=vpivot.com&blog=9504545&post=328&subd=vpivot&ref=&feed=1" />]]></content:encoded>
			<wfw:commentRss>http://vpivot.com/2010/03/06/hyper-threading-on-vsphere/feed/</wfw:commentRss>
		<slash:comments>9</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/a2124d2a00c4c819fa548fa4453db6a5?s=96&#38;d=http%3A%2F%2F0.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96&#38;r=G" medium="image">
			<media:title type="html">drummonds1974</media:title>
		</media:content>
	</item>
		<item>
		<title>Maximum Concurrent VMotions</title>
		<link>http://vpivot.com/2010/03/03/maximum-concurrent-vmotions/</link>
		<comments>http://vpivot.com/2010/03/03/maximum-concurrent-vmotions/#comments</comments>
		<pubDate>Wed, 03 Mar 2010 18:38:35 +0000</pubDate>
		<dc:creator>Scott</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[network]]></category>
		<category><![CDATA[vmkernel]]></category>
		<category><![CDATA[vmotion]]></category>

		<guid isPermaLink="false">http://vpivot.com/?p=322</guid>
		<description><![CDATA[A VMware customer and attendee of a talk I gave at a performance roundtable asked me for a preview of unreleased features*.  When I talked about the amazing improvements to VMotion that would enable as many as eight concurrent VMotions the customer said, and I am paraphrasing here, &#8220;Yawn.  I can already do that.&#8221;  Really?  [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=vpivot.com&blog=9504545&post=322&subd=vpivot&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<p>A VMware customer and attendee of a talk I gave at a performance roundtable asked me for a preview of unreleased features*.  When I talked about the amazing improvements to VMotion that would enable as many as eight concurrent VMotions the customer said, and I am paraphrasing here, &#8220;Yawn.  I can already do that.&#8221;  Really?  I had no idea customers could do this.  As it turns out, many of us at VMware did not know that customers knew how to do this.</p>
<p><span id="more-322"></span>VMware&#8217;s dedicated and curious customer base somehow obtained information on an undocumented parameter that limits the maximum number of concurrent VMotions.  Information on modifying this parameter is sprinkled around the <a href="http://www.youtube.com/watch?v=f99PcP0aFNE">internet tubes</a> but my favorite comes from Jason Boche.  Jason and others have identified how you can <a href="http://www.boche.net/blog/?p=806">change the current limit of two VMotions per host</a>.  I want to give you an explanation of why you should not do this and show you what you can expect from future releases of vSphere.</p>
<p>The concurrent VMotion limit was set after careful analysis of the capabilities of existing hardware, VMotion implementation details, and a large number of enterprise applications.  It has been set at two to provide a near 100% guarantee of no downtime during the migrations.  On some workloads or on older hardware, it is possible that three or more concurrent migrations could saturate a system resource and result in downtime.  If your hardware is brand new and your application is not wildly touching memory, it is possible that you can somewhat safely increase the concurrent VMotion limit.  But, as Kit Colbert told me, &#8220;I think allowing four simultaneous VMotions is probably OK in most scenarios, but if the VMs are really large and/or have very big working sets, then I’d dissuade customers from bumping up the limits.&#8221;</p>
<p>And if Kit&#8217;s gentle reminder is not enough to dissuade you from making this change to your production environments, I will point out that problems that arise as a result of changing the concurrent VMotion limit are not supported by VMware.  We simply cannot promise the unfaltering quality of VMotion if end users increase this limit.</p>
<p>Now, back to the feature preview in my ongoing performance road show (today: Bellevue, WA!).  Using an in-house development version of ESX, we are running eight concurrent VMotions on a single host with the even better quality than that of vSphere 4.  A phenomenally dedicated group of engineers has drastically improved the throughput of VMotions and decreased the already tiny virtual machine stun time.  This means that we can maintain our zero downtime commitment while upping the number of concurrent VMotions by a factor of four.  Furthermore, total migration time has also decreased, so our development host can evacuate a large number of virtual machines almost order of magnitude faster than vSphere 4.</p>
<p>(*) Any time I talk about this or other unreleased features the standard VMware disclaimer applies.  We are not committing this feature to any specific product nor committing any product to a specific date.  Not my rules, guy</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/vpivot.wordpress.com/322/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/vpivot.wordpress.com/322/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/vpivot.wordpress.com/322/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/vpivot.wordpress.com/322/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/vpivot.wordpress.com/322/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/vpivot.wordpress.com/322/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/vpivot.wordpress.com/322/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/vpivot.wordpress.com/322/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/vpivot.wordpress.com/322/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/vpivot.wordpress.com/322/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=vpivot.com&blog=9504545&post=322&subd=vpivot&ref=&feed=1" />]]></content:encoded>
			<wfw:commentRss>http://vpivot.com/2010/03/03/maximum-concurrent-vmotions/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/a2124d2a00c4c819fa548fa4453db6a5?s=96&#38;d=http%3A%2F%2F0.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96&#38;r=G" medium="image">
			<media:title type="html">drummonds1974</media:title>
		</media:content>
	</item>
		<item>
		<title>Memory Compression</title>
		<link>http://vpivot.com/2010/03/01/memory-compression/</link>
		<comments>http://vpivot.com/2010/03/01/memory-compression/#comments</comments>
		<pubDate>Tue, 02 Mar 2010 01:36:15 +0000</pubDate>
		<dc:creator>Scott</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[memory]]></category>
		<category><![CDATA[pex]]></category>
		<category><![CDATA[vmworld]]></category>

		<guid isPermaLink="false">http://vpivot.com/?p=313</guid>
		<description><![CDATA[Steve Herrod&#8217;s keynote at Partner Exchange 2010 included a tantalizing slide on an upcoming memory maximization technology: memory compression.  A few of you have already seen the overview of this technology Kit Colbert and Fei Guo previewed it at VMworld 2009.   Today I want to tell you how this upcoming feature will help you pack [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=vpivot.com&blog=9504545&post=313&subd=vpivot&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<p>Steve Herrod&#8217;s keynote at Partner Exchange 2010 included a tantalizing slide on an upcoming memory maximization technology: memory compression.  A few of you have already seen the overview of this technology <a href="http://www.vmworld2009.com/docs/DOC-3817">Kit Colbert and Fei Guo previewed it at VMworld 2009</a>.   Today I want to tell you how this upcoming feature will help you pack even more virtual machines onto your existing servers.</p>
<p><span id="more-313"></span>To get the most out of your servers&#8217; memory you have to over-commit it.  Go too far and the host will swap.  This fact is immutable in enterprise memory management.  Because rotating disks have seek times that are <em>six orders of magnitude</em> larger than memory, when your host swaps your applications&#8217; performance suffers catastrophically.  <a href="http://vpivot.com/2009/12/24/solid-state-disks-and-host-swapping/">Solid state drives (SSD) can mitigate the performance cost</a> by reducing swap latency by a couple orders of magnitude.  But SSDs still have delays tens of thousands of times worse than memory.</p>
<p>VMware engineers have been working on a technology that we unofficially call on-demand memory compression (ODMC) or compression cache, depending on who you talk to.  The idea of ODMC is to avoid swapping by compressing a set of target pages to a special region.  We have measured the additional latency&#8211;the compression time&#8211;to be over a hundred times better than rotating disk latencies.  And this will decrease at CPU performance increases.</p>
<p>SSD devices will continue to play an important part in solving the performance problems of extreme memory over-commit because of the great volume of data they can serve at a speed much faster than rotating disks.  But it will be a secondary solution to the faster ODMC, which uses a small dedicated area of system memory.  VMware&#8217;s long-term prioritization for managing the most aggressively over-committed memory looks like this:</p>
<ol>
<li>Do not swap if possible.  We will continue to leverage transparent page sharing and ballooning to make swapping a last resort.</li>
<li>Use ODMC to a predefined cache to decrease memory utilization.*</li>
<li>Swap to persistent memory (SSD) installed locally in the server.**</li>
<li>Swap to the array, which may benefit from installed SSDs.</li>
</ol>
<p>(*) Demonstrated in the lab and coming in a future product.</p>
<p>(**) Part of our vision and not yet demonstrated.</p>
<p>The end goal of this prioritized use of different technologies is the reduction of the performance penalty of swap.  If VMware can reduce the penalty of swap, the virtual machines in extremely over-committed environments will not slow much when they need more memory than the host has available.  When this performance cost of swapping is reduced, you can safely drive your consolidation ratios even higher.</p>
<p>I cannot wait for the general availability of ODMC.  It is another technological accomplishment in a long line of innovation out of our phenomenal engineering organization.  At times I wonder when the last time another operating system software company introduced something really awesome to the industry.  But of course, I am biased.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/vpivot.wordpress.com/313/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/vpivot.wordpress.com/313/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/vpivot.wordpress.com/313/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/vpivot.wordpress.com/313/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/vpivot.wordpress.com/313/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/vpivot.wordpress.com/313/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/vpivot.wordpress.com/313/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/vpivot.wordpress.com/313/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/vpivot.wordpress.com/313/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/vpivot.wordpress.com/313/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=vpivot.com&blog=9504545&post=313&subd=vpivot&ref=&feed=1" />]]></content:encoded>
			<wfw:commentRss>http://vpivot.com/2010/03/01/memory-compression/feed/</wfw:commentRss>
		<slash:comments>16</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/a2124d2a00c4c819fa548fa4453db6a5?s=96&#38;d=http%3A%2F%2F0.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96&#38;r=G" medium="image">
			<media:title type="html">drummonds1974</media:title>
		</media:content>
	</item>
		<item>
		<title>PVSCSI and vmxnet3</title>
		<link>http://vpivot.com/2010/02/22/pvscsi-and-vmxnet3/</link>
		<comments>http://vpivot.com/2010/02/22/pvscsi-and-vmxnet3/#comments</comments>
		<pubDate>Tue, 23 Feb 2010 00:12:34 +0000</pubDate>
		<dc:creator>Scott</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[pvscsi]]></category>
		<category><![CDATA[vmkernel]]></category>
		<category><![CDATA[vmxnet]]></category>

		<guid isPermaLink="false">http://vpivot.com/?p=309</guid>
		<description><![CDATA[I heard a myth today that VMware did not support running vmxnet3 and PVSCSI in the same virtual machine.  I have talked with a dozen engineers on the subject since it came up this morning and all swear the drivers run great together.  The two drivers work on very different and unrelated stacks in the [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=vpivot.com&blog=9504545&post=309&subd=vpivot&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<p>I heard a myth today that VMware did not support running vmxnet3 and PVSCSI in the same virtual machine.  I have talked with a dozen engineers on the subject since it came up this morning and all swear the drivers run great together.  The two drivers work on very different and unrelated stacks in the VMkernel.  There are no inter-dependencies of any sort between PVSCSI and vmxnet3.</p>
<p>I think this rumor sprung from our somewhat limited support of paravirtualized drivers in FT-protected virtual machines, which will be improved in a subsequent release.  And while most of you probably know that PVSCSI and vmxnet3 run together, I thought it worth a brief comment on this blog.  Myths are like cockroaches.  For every one you see there are hundreds hiding behind the walls.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/vpivot.wordpress.com/309/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/vpivot.wordpress.com/309/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/vpivot.wordpress.com/309/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/vpivot.wordpress.com/309/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/vpivot.wordpress.com/309/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/vpivot.wordpress.com/309/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/vpivot.wordpress.com/309/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/vpivot.wordpress.com/309/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/vpivot.wordpress.com/309/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/vpivot.wordpress.com/309/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=vpivot.com&blog=9504545&post=309&subd=vpivot&ref=&feed=1" />]]></content:encoded>
			<wfw:commentRss>http://vpivot.com/2010/02/22/pvscsi-and-vmxnet3/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/a2124d2a00c4c819fa548fa4453db6a5?s=96&#38;d=http%3A%2F%2F0.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96&#38;r=G" medium="image">
			<media:title type="html">drummonds1974</media:title>
		</media:content>
	</item>
		<item>
		<title>VMworld 2010 Performance Lab</title>
		<link>http://vpivot.com/2010/02/18/vmworld-2010-performance-lab/</link>
		<comments>http://vpivot.com/2010/02/18/vmworld-2010-performance-lab/#comments</comments>
		<pubDate>Fri, 19 Feb 2010 05:21:10 +0000</pubDate>
		<dc:creator>Scott</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[vmworld]]></category>
		<category><![CDATA[vmworld europe]]></category>

		<guid isPermaLink="false">http://vpivot.com/?p=295</guid>
		<description><![CDATA[As you can imagine, we VMware employees are starting to ramp up for VMworld 2010 and its younger brother in Copenhagen, VMworld Europe 2010.  Last year I ran the performance lab and this year I plan on making it even more awesome than last year.  Since this blog enjoys a small following of the performance [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=vpivot.com&blog=9504545&post=295&subd=vpivot&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<p>As you can imagine, we VMware employees are starting to ramp up for VMworld 2010 and its younger brother in Copenhagen, VMworld Europe 2010.  Last year I ran the performance lab and this year I plan on making it even more awesome than last year.  Since this blog enjoys a small following of the performance faithful and VMworld attendees, I want to put the question to you: what do you want to see in the upcoming performance troubleshooting lab?</p>
<p><span id="more-295"></span>Last year was my first year captaining the performance troubleshooting lab.  I designed the content around the performance problems I see most frequently in customer deployments. On the philosophy that every attendee should get their money&#8217;s worth in the two hour slot, I packed in more experiments than anyone could finish in the allotted time.  That worked great for experienced VI admins, but some of the more novice administrators walked out with their heads spinning.</p>
<p>I do want to continue challenging even the strongest admins that come to the lab, but I must provide enough basics to make the lab enjoyable for everyone.  With that requirement in your mind, maybe you can offer ideas as to how the lab should change and what content you would like to see.  Here are a few primer questions:</p>
<ul>
<li>What comments do you have from last year&#8217;s lab?  Did I succeed in my struggle to make the lab interesting to VCPs and beginners alike?  If not, which side of that spectrum did I favor?</li>
<li>What content do you want to see added?  A few ideas:
<ul>
<li>Swap management: managing swap through swap file placement, use of SSDs, and memory compression*</li>
<li>Storage IO Control*: using shares and limits to maintain performance of critical VMs in the presence of storage bottlenecks</li>
<li>NFS performance diagnosis*</li>
<li>Managing storage alignment</li>
<li>Guest defgragmentation impact</li>
<li>Anything else you are itching for?</li>
</ul>
</li>
<li>What content should we should repeat with updated examples?</li>
<li>What do you want us to avoid repeating?  Have you learned all you need to know about vscsiStats, for instance?</li>
<li>What would you think if we made this lab self-paced but promised performance experts in the room and on-call for the entire day?</li>
</ul>
<p>(*) Coming soon to a hypervisor near you.</p>
<p>Put your comments here and they may influence the content of this lab.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/vpivot.wordpress.com/295/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/vpivot.wordpress.com/295/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/vpivot.wordpress.com/295/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/vpivot.wordpress.com/295/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/vpivot.wordpress.com/295/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/vpivot.wordpress.com/295/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/vpivot.wordpress.com/295/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/vpivot.wordpress.com/295/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/vpivot.wordpress.com/295/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/vpivot.wordpress.com/295/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=vpivot.com&blog=9504545&post=295&subd=vpivot&ref=&feed=1" />]]></content:encoded>
			<wfw:commentRss>http://vpivot.com/2010/02/18/vmworld-2010-performance-lab/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/a2124d2a00c4c819fa548fa4453db6a5?s=96&#38;d=http%3A%2F%2F0.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96&#38;r=G" medium="image">
			<media:title type="html">drummonds1974</media:title>
		</media:content>
	</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>Scott</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 [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=vpivot.com&blog=9504545&post=288&subd=vpivot&ref=&feed=1" />]]></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>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/vpivot.wordpress.com/288/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/vpivot.wordpress.com/288/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/vpivot.wordpress.com/288/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/vpivot.wordpress.com/288/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/vpivot.wordpress.com/288/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/vpivot.wordpress.com/288/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/vpivot.wordpress.com/288/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/vpivot.wordpress.com/288/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/vpivot.wordpress.com/288/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/vpivot.wordpress.com/288/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=vpivot.com&blog=9504545&post=288&subd=vpivot&ref=&feed=1" />]]></content:encoded>
			<wfw:commentRss>http://vpivot.com/2010/02/12/windows-guest-defragmentation/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/a2124d2a00c4c819fa548fa4453db6a5?s=96&#38;d=http%3A%2F%2F0.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96&#38;r=G" medium="image">
			<media:title type="html">drummonds1974</media:title>
		</media:content>
	</item>
		<item>
		<title>Las Vegas Taxi Rates</title>
		<link>http://vpivot.com/2010/02/11/las-vegas-taxi-rates/</link>
		<comments>http://vpivot.com/2010/02/11/las-vegas-taxi-rates/#comments</comments>
		<pubDate>Thu, 11 Feb 2010 21:22:06 +0000</pubDate>
		<dc:creator>Scott</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[pex]]></category>

		<guid isPermaLink="false">http://vpivot.com/?p=290</guid>
		<description><![CDATA[Let&#8217;s take a break from virtualization and talk about taxi cabs in Las Vegas.  I just got into McCarran airport after a fantastically successful VMware Partner Exchange 2010 and want to ask some of you seasoned veterans of Las Vegas to share your thoughts on a cab problem that I only learned of today.
During my [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=vpivot.com&blog=9504545&post=290&subd=vpivot&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<p>Let&#8217;s take a break from virtualization and talk about taxi cabs in Las Vegas.  I just got into McCarran airport after a fantastically successful VMware Partner Exchange 2010 and want to ask some of you seasoned veterans of Las Vegas to share your thoughts on a cab problem that I only learned of today.</p>
<p><span id="more-290"></span>During my short cab ride from the Mandalay Bay to McCarran (LAS) the driver and I discussed routes and fares to and from the airport.  The route from the airport, favored by taxis that pick you up at LAS, follows the highway, starting on I-215 and then to I-15, at a cost of around $28.  This as opposed to the more direct, airport-bound trip on Paradise, Tropicana and the Boulevard, which takes less time and totals only $11.50.  I asked my driver, &#8220;Why do the taxis to the airport take the second, shorter, cheaper route when the hotel-bound taxis always take the highway?&#8221;  The driver answered simply: &#8220;Airport taxis are f****** crooks.&#8221;</p>
<p>I have spent a little time investigating these two routes on Google maps and they do not seem to be dramatically different in terms of total length.  But clearly the fares differ widely.  I am sure the taxis prefer a larger fare but might there be an innocuous reason for the highway route?  Perhaps the risk of traffic delay is decreased by taking the highway and avoiding the strip?</p>
<p>My driver today seemed certain that greed fuels the decision to take the longer route.  He said that no visitor should ever pay more than $12 for a ride from the airport.  He advised me to refuse payment to the next cabbie that took me for the long ride.  He also said a call to the taxi cab company, which gains from the overcharge, would have no effect.  But a call to the <a href="http://taxi.state.nv.us">taxi cab authority</a> is justified and would result in a $300 fine to the taxi company for the long haul.</p>
<p>Has anyone ever taken the short route from the airport?  Are there any problems with getting taxis to take that route instead of the highway?  Is there a good reason to take the highway instead of surface streets?</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/vpivot.wordpress.com/290/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/vpivot.wordpress.com/290/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/vpivot.wordpress.com/290/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/vpivot.wordpress.com/290/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/vpivot.wordpress.com/290/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/vpivot.wordpress.com/290/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/vpivot.wordpress.com/290/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/vpivot.wordpress.com/290/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/vpivot.wordpress.com/290/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/vpivot.wordpress.com/290/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=vpivot.com&blog=9504545&post=290&subd=vpivot&ref=&feed=1" />]]></content:encoded>
			<wfw:commentRss>http://vpivot.com/2010/02/11/las-vegas-taxi-rates/feed/</wfw:commentRss>
		<slash:comments>9</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/a2124d2a00c4c819fa548fa4453db6a5?s=96&#38;d=http%3A%2F%2F0.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96&#38;r=G" medium="image">
			<media:title type="html">drummonds1974</media:title>
		</media:content>
	</item>
		<item>
		<title>Inaccuracy of In-guest Performance Counters</title>
		<link>http://vpivot.com/2010/02/10/inaccuracy-of-in-guest-performance-counters/</link>
		<comments>http://vpivot.com/2010/02/10/inaccuracy-of-in-guest-performance-counters/#comments</comments>
		<pubDate>Wed, 10 Feb 2010 23:33:43 +0000</pubDate>
		<dc:creator>Scott</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[perfmon]]></category>
		<category><![CDATA[scheduler]]></category>
		<category><![CDATA[timekeeping]]></category>
		<category><![CDATA[vmkernel]]></category>

		<guid isPermaLink="false">http://vpivot.com/?p=268</guid>
		<description><![CDATA[Every couple of months I receive a request for an explanation as to why performance counters in a virtual machine cannot be trusted.  While it is unfairly cynical to say that in-guest counters are never right, accurate capacity management and troubleshooting should rely on the counters provided by vSphere in either vCenter or esxtop.  The [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=vpivot.com&blog=9504545&post=268&subd=vpivot&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<p>Every couple of months I receive a request for an explanation as to why performance counters in a virtual machine cannot be trusted.  While it is unfairly cynical to say that in-guest counters are never right, accurate capacity management and troubleshooting should rely on the counters provided by vSphere in either <a href="http://communities.vmware.com/docs/DOC-5600">vCenter</a> or <a href="http://communities.vmware.com/docs/DOC-9279">esxtop</a>.  The explanation is too short to merit a white paper but I hope a blog article will serve as the authoritative comment on the subject.</p>
<p><span id="more-268"></span>Usually this issue arises inside a new VMware customer or an established customer that has added new staff to the virtualization team.  In both cases the administrators are familiar with existing tools and require good reason to retool their thinking and environment around a new measurement system.</p>
<p>I was discussing the response to these concerns with my friend and colleague Kaushik Banerjee, the head of VMware&#8217;s outbound engineering group.  Kaushik and I spend a lot of time thinking about communicating technical details to our customers and in this case we chose different approaches to answer the question.  Both responses are complementary, so choose the one that suits your needs.</p>
<h2>Kaushik&#8217;s Approach: The Killer Examples</h2>
<p>Kaushik suggested that if we show cases where the guest OS&#8217;s counters were obviously wrong that a naturally suspicious VI admin would never trust the guest counters again.  To that end, I offer the following screen shots to make our point.</p>
<div id="attachment_285" class="wp-caption alignnone" style="width: 820px"><a href="http://vpivot.files.wordpress.com/2010/02/utilization_guest_higher.jpg"><img class="size-full wp-image-285" title="Guest Utilization Higher Than Host" src="http://vpivot.files.wordpress.com/2010/02/utilization_guest_higher.jpg?w=810&#038;h=705" alt="Guest Utilization Higher Than Host" width="810" height="705" /></a><p class="wp-caption-text">Perfmon&#39;s counters show utilization higher in the guest than the host reports.</p></div>
<p>This screen shot shows two counters available in Perfmon inside a Windows guest with the <a href="http://vpivot.com/2009/09/17/using-perfmon-for-accurate-esx-performance-counters">vmStatsProvider</a> installed (available by default since vSphere).  The darker, red line is the CPU utilization as reported by the guest.  The lighter, greenish (?) line is CPU utilization of the virtual machine, from the host&#8217;s perspective.  This is the real CPU utilization passed up to the host by vmStatsProvider.  Notice how the host is always reporting higher utilization than the guest.  This is due to one of the reasons why guest counters cannot be trusted: they are unaware of hypervisor overheads.</p>
<p>This second screen shot shows a different case where the host utilization is lower than that reported by the guest.  Again, the dark red line represents the guest OS&#8217;s report of CPU utilization and the lighter line shows the real CPU utilization as reported by ESX.</p>
<div id="attachment_284" class="wp-caption alignnone" style="width: 828px"><a href="http://vpivot.files.wordpress.com/2010/02/utilization_host_higher.jpg"><img class="size-full wp-image-284" title="Host Utilization Higher Than Guest" src="http://vpivot.files.wordpress.com/2010/02/utilization_host_higher.jpg?w=818&#038;h=716" alt="Host Utilization Higher Than Guest" width="818" height="716" /></a><p class="wp-caption-text">Perfmon&#39;s counters report a higher CPU utilization than ESX&#39;s.</p></div>
<p>The reason the host shows lower utilization than the guest is because the guest is unaware that it is only getting a fraction of the host&#8217;s CPU, time-sliced by ESX&#8217;s scheduler.  In this case the virtual machine was contending for CPU with other active virtual machines but this just the same principle would apply had a CPU limit been set.</p>
<h2>Scott&#8217;s Approach: A Detailed Explanation</h2>
<p>My approach to convincing VI admins to avoid guest tools is based on bottomless thirst for information that is common to technophiles.  If I can provide an explanation for the underlying system of resource scheduling and manipulation, then our admins will be able to deal with the guest counter issue and maybe solve other issues with their newfound knowledge.</p>
<p>There are four reasons why guest counters cannot be trusted:</p>
<ol>
<li>The guest is unaware of virtualization overheads.  As screen shot one showed above, the hypervisor will increase the CPU load as it virtualizes the hardware for the guest operating system.  That additional CPU work is not seeing by guest tools.</li>
<li>The guest is unaware that it is only seeing the portion of CPU that ESX&#8217;s scheduler is allowing it to see.  Because of contention or resource restrictions, virtual machines only get a slice of the CPU&#8217;s time.  When a guest thinks it is getting 100% of the CPU it may not know that the processor is being shared by eight other virtual machines.  See the second screen shot above.</li>
<li>Time skew in virtual machines can change the sample window for time-based counters.  This means that the guest may have measured 10 milliseconds of time passage during a read command when 12 milliseconds have elapsed.  This is more common on older versions of ESX and when the host CPU is saturated.  More on this below.</li>
<li>The virtual machines are unaware that they are being de-scheduled when idle, which means that they appear to be working more of the time than they are.  Consider a case where a virtual machine is idle 90% of the time.  If ESX does not schedule the VM during its idle time then the guest will think that its processor queues are full 100% of the time that it is being executed.</li>
</ol>
<p>The time drift explanation (item three) was historically the most problematic for VMware.  On older versions of our products time drift was common.  As ESX has matured we have reduced the amount of drift which has improved the accuracy of guest counters.  But the timer hardware is still being virtualized in software running on the host CPU.  This means that if host processor is fully utilized, the timer may not be scheduled on time, resulting in a delay in some ticks and a resultant skew in guest time.</p>
<h2>References</h2>
<p><a href="https://www.vmware.com/pdf/VI3.5_Performance.pdf">Performance Best Practices and Benchmarking Guidelines</a>.  This white paper was the last version that we printed that included benchmarking best practices, which contains some discussion on the need to measure performance from outside the host-under-test.</p>
<p><a href="http://www.vmware.com/pdf/vmware_timekeeping.pdf">Timekeeping in Virtual Machines</a>.  This document&#8211;not updated since VI3 but still accurate in its theory&#8211;will give the background on VMware-based time keeping and provide an explanation as to how skew can occur.</p>
<p><a href="http://www.vmware.com/files/pdf/perf-vsphere-cpu_scheduler.pdf">VMware vSphere™ 4: The CPU Scheduler in VMware® ESX™ 4</a>.  This white paper provides great detail how the scheduler works which will fully explains the notion of time slicing.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/vpivot.wordpress.com/268/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/vpivot.wordpress.com/268/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/vpivot.wordpress.com/268/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/vpivot.wordpress.com/268/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/vpivot.wordpress.com/268/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/vpivot.wordpress.com/268/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/vpivot.wordpress.com/268/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/vpivot.wordpress.com/268/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/vpivot.wordpress.com/268/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/vpivot.wordpress.com/268/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=vpivot.com&blog=9504545&post=268&subd=vpivot&ref=&feed=1" />]]></content:encoded>
			<wfw:commentRss>http://vpivot.com/2010/02/10/inaccuracy-of-in-guest-performance-counters/feed/</wfw:commentRss>
		<slash:comments>13</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/a2124d2a00c4c819fa548fa4453db6a5?s=96&#38;d=http%3A%2F%2F0.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96&#38;r=G" medium="image">
			<media:title type="html">drummonds1974</media:title>
		</media:content>

		<media:content url="http://vpivot.files.wordpress.com/2010/02/utilization_guest_higher.jpg" medium="image">
			<media:title type="html">Guest Utilization Higher Than Host</media:title>
		</media:content>

		<media:content url="http://vpivot.files.wordpress.com/2010/02/utilization_host_higher.jpg" medium="image">
			<media:title type="html">Host Utilization Higher Than Guest</media:title>
		</media:content>
	</item>
		<item>
		<title>PVSCSI and Low IO Workloads</title>
		<link>http://vpivot.com/2010/02/04/pvscsi-and-low-io-workloads/</link>
		<comments>http://vpivot.com/2010/02/04/pvscsi-and-low-io-workloads/#comments</comments>
		<pubDate>Thu, 04 Feb 2010 17:46:56 +0000</pubDate>
		<dc:creator>Scott</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[pvscsi]]></category>
		<category><![CDATA[storage]]></category>
		<category><![CDATA[vmkernel]]></category>

		<guid isPermaLink="false">http://vpivot.com/?p=274</guid>
		<description><![CDATA[Scott Sauer recently asked me a tough question on Twitter.  My roaming best practices talk includes the phrase &#8220;do not use PVSCSI for low-IO workloads&#8221;.  When Scott saw a VMware KB echoing my recommendation, he asked the obvious question: &#8220;Why?&#8221;  It took me a couple of days to get a sufficient answer.
One technique for storage [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=vpivot.com&blog=9504545&post=274&subd=vpivot&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<p><a href="http://twitter.com/ssauer">Scott Sauer</a> recently asked me a tough question on Twitter.  My roaming best practices talk includes the phrase &#8220;do not use PVSCSI for low-IO workloads&#8221;.  When Scott saw a <a href="http://kb.vmware.com/kb/1017652">VMware KB echoing my recommendation</a>, he asked the obvious question: &#8220;Why?&#8221;  It took me a couple of days to get a sufficient answer.</p>
<p><span id="more-274"></span>One technique for storage driver efficiency improvements is interrupt coalescing.  Coalescing can be thought of as buffering: multiple events are queued for simultaneous processing.  For coalescing to improve efficiency, interrupts must stream in fast enough to create large batch requests. Otherwise the timeout window will pass with no additional interrupts arriving.  This means the single interrupt is handled as normal but after a useless delay.</p>
<p>An intelligent storage driver will therefore coalesce at high IO but not low IO.  In the years we have spent optimizing ESX&#8217;s LSI Logic virtual storage adapter, we have fine-tuned the coalescing behavior to give fantastic performance on all workloads.  This is done by tracking two key storage counters:</p>
<ul>
<li>Outstanding IOs (OIOs): Represents the virtual machine&#8217;s <em>demand</em> for IO.</li>
<li>IOs per second (IOPS):  Represents the storage system&#8217;s <em>supply</em> of IO.</li>
</ul>
<p>The robust LSI Logic driver increases coalescing as OIOs and IOPS increase.  No coalescing is used with few OIOs or low throughput.  This produces efficient IO at large throughput and low latency IO when throughput is small.</p>
<p>Currently the PVSCSI driver coalesces based on OIOs only, and not throughput.  This means that when the virtual machine is requesting a lot of IO but the storage is not delivering, the PVSCSI driver is coalescing interrupts.  But without the storage supplying a steady stream of IOs there are no interrupts to coalesce.  <em>The result is a slightly increased latency with little or no efficiency gain for PVSCSI in low throughput environments.</em></p>
<p>LSI Logic is so efficient at low throughput levels that there is no need for a special device driver to improve efficiency.  The CPU utilization difference between LSI and PVSCSI at hundreds of IOPS is insignificant.  But at massive amounts of IO&#8211;where 10-50K IOPS are streaming over the virtual SCSI bus&#8211;PVSCSI can save a large number of CPU cycles.  Because of that, our first implementation of PVSCSI was built on the assumption that customers would only use the technology when they had backed their virtual machines by world-class storage.</p>
<p>But VMware&#8217;s marketing engine (me, really) started telling everyone about PVSCSI without the right caveat (&#8220;only for massive IO systems!&#8221;)  So, everyone started using it as a general solution.  This meant that in one condition&#8211;slow storage (low IOPS) with a demanding virtual machine (high OIOs)&#8211;PVSCSI has been inefficiently coalescing IOs resulting in performance slightly worse than LSI Logic.</p>
<p>But now VMware&#8217;s customers want PVSCSI as a general solution and not just for high IO workloads.  As a result we are including advanced coalescing behavior in PVSCSI for future versions of ESX.  More on that when the release vehicle is set.</p>
<h2>PVSCSI In A Nutshell</h2>
<p>If you plodded through the above technical explanation of interrupt coalescing and PVSCSI I applaud you.  If you just want a summary of what to do, here it is:</p>
<ul>
<li>For existing products, only use PVSCSI against VMDKs that are backed by fast (greater than 2,000 IOPS) storage.</li>
<li>If you have installed PVSCSI in low IO environments, do not worry about reconfiguring to LSI Logic.  The net loss of performance is very small.  And clearly these low IO virtual machines are not running your performance-critical applications.</li>
<li>For future products*, PVSCSI will be as efficient as LSI Logic for all environments.</li>
</ul>
<p>(*) Specific product versions not yet announced.</p>
<h2>Update: February 16</h2>
<p>The simple, almost austere KB on this rare occurrence raised more questions than answers.  You may notice that <a href="http://kb.vmware.com/kb/1017652">the KB has been updated</a> with text from this blog since the blog&#8217;s original publication.  A <a href="http://www.vmware.com/pdf/vsp_4_pvscsi_perf.pdf">white paper on PVSCSI</a> that had been under construction for quite some time was also released with <a href="http://blogs.vmware.com/performance/2010/02/highperformance-pvsci-storage-adapter-can-reduce-cpio-by-1030.html">a VROOM! article</a> we often pair with such a white paper.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/vpivot.wordpress.com/274/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/vpivot.wordpress.com/274/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/vpivot.wordpress.com/274/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/vpivot.wordpress.com/274/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/vpivot.wordpress.com/274/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/vpivot.wordpress.com/274/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/vpivot.wordpress.com/274/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/vpivot.wordpress.com/274/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/vpivot.wordpress.com/274/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/vpivot.wordpress.com/274/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=vpivot.com&blog=9504545&post=274&subd=vpivot&ref=&feed=1" />]]></content:encoded>
			<wfw:commentRss>http://vpivot.com/2010/02/04/pvscsi-and-low-io-workloads/feed/</wfw:commentRss>
		<slash:comments>15</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/a2124d2a00c4c819fa548fa4453db6a5?s=96&#38;d=http%3A%2F%2F0.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96&#38;r=G" medium="image">
			<media:title type="html">drummonds1974</media:title>
		</media:content>
	</item>
	</channel>
</rss>