<?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; vmxnet</title>
	<atom:link href="http://vpivot.com/tag/vmxnet/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>VMDirectPath</title>
		<link>http://vpivot.com/2010/06/09/vmdirectpath/</link>
		<comments>http://vpivot.com/2010/06/09/vmdirectpath/#comments</comments>
		<pubDate>Wed, 09 Jun 2010 04:11:11 +0000</pubDate>
		<dc:creator>drummonds</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[network]]></category>
		<category><![CDATA[specweb]]></category>
		<category><![CDATA[vmware]]></category>
		<category><![CDATA[vmxnet]]></category>

		<guid isPermaLink="false">http://vpivot.com/?p=548</guid>
		<description><![CDATA[Chad Sakac was recently touring APJ and delivering his high energy VMware+EMC message with demos, demos, and more demos. His encyclopedia-sized deck of technical gems included a short discussion on VMDirectPath that merits comment. I will offer my thoughts here. Chad parenthetically wrote on VMDirectPath in a recent blog: Normally, as people who know me [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://virtualgeek.typepad.com/">Chad Sakac</a> was recently touring APJ and delivering his high energy VMware+EMC message with <a href="http://virtualgeek.typepad.com/virtual_geek/2010/05/emc-unified-storage-next-generation-simplicity.html">demos</a>, <a href="http://virtualgeek.typepad.com/virtual_geek/2010/05/emc-unified-storage-next-generation-efficiency-details.html">demos</a>, and <a href="http://virtualgeek.typepad.com/virtual_geek/2010/03/additional-emc-nfs-integration-with-vmware-now-ga.html">more demos</a>.  His encyclopedia-sized deck of technical gems included a short discussion on VMDirectPath that merits comment.  I will offer my thoughts here.</p>
<p><span id="more-548"></span>Chad parenthetically wrote on VMDirectPath in <a href="http://virtualgeek.typepad.com/virtual_geek/2010/06/recoverpoint-as-a-virtual-appliance-vrpa.html">a recent blog</a>:</p>
<blockquote><p>Normally, as people who know me can attest to, I’m not a general fan of VMdirectpath.  Most people think of it as a “performance thing” when the reality is that with VMXNET3 and pvSCSI adapters in vSphere 4 you can get to within low percentage points of the same performance as you can with “hypervisor bypass” (met 3 customers in the last 2 weeks who were adamant they needed VMDirectPath for “performance” – but didn’t know what their perf goals were, and were using VI3 as the baseline &#8211; argh), and I know that this is called out in Cisco’s training on UCS.  For some reason people think for “high performance IO” you can’t do it without bypass, but that is not explicitly true.</p></blockquote>
<p>I have been touring the world telling people that VMDirectPath is not a performance feature ever since it was released.  Unfortunately my pithy marketing statements are only partial truth.  In March of this year VMware released <a href="http://blogs.vmware.com/performance/2010/03/achieving-high-web-throughput-with-vmware-vsphere-4-on-intel-xeon-5500-series-nehalem-servers-.html">an update to their ongoing SPECweb work</a> that leveraged VMDirectPath.  It is unfortunate that this article encourages customers to implement VMDirectPath.  I want to convince you to ignore it.</p>
<p>Before it was released, VMware was internally calling VMDirectPath &#8220;pass through&#8221;.  The idea was to provide direct access to the underlying hardware to the guest operating system and its applications.  The monumental negative impact of this is that the guest operating system becomes married to the physical hardware.  This means the virtual machine cannot be moved (vMotion), load balanced (DRS), protected through fault tolerance (FT), and many other awesome vSphere feature.  Enabling VMDirectPath for a virtual machine effectively moves your virtualization technology back to 2006.</p>
<p>The only reason why anyone is considering VMDirectPath for production deployments is the possibility of increased performance.  But the only workload for which VMware has ever claimed substantial gains from this feature is the SPECweb work I quoted above.  That workload sustained 30 Gb/s of network traffic.  I doubt any of VMware&#8217;s customers are using even a fraction of this network throughput on a single server in their production environments.</p>
<p>Even in this extremely intense network environment, the VMDirectPath contribution to application throughput is not quantified.  I discussed its impact with the engineer that performed the test and he estimated the performance improvement at less than 10%.</p>
<p>The reason why device passthrough is not useful in vSphere is because of the incredible efficiency gains VMware has made with vmxnet and its virtual storage stack.  As Chad mentioned above, customers carry with them bad memories of VMware&#8217;s IO capabilities in VI3.  That was a different era, my friends.  I hope that I can convince you to trust VMware&#8217;s core technologies and not be looking for features that circumvent them.</p>
<p>So, let me summarize:</p>
<ul>
<li>If you enable VMDirectPath you lose most of the features you love about vSphere.</li>
<li>VMDirectPath has never been shown to have any impact on tier-1 applications even with high network needs (10 Gb/s).</li>
<li>The largest possible performance gain VMDirectPath has been shown to add to an application is about 10%, and that was an extreme network usage of 30 Gb/s.</li>
</ul>
<p>Tread carefully with this feature, everyone.  Its usage should be a last resort, not a first.</p>
]]></content:encoded>
			<wfw:commentRss>http://vpivot.com/2010/06/09/vmdirectpath/feed/</wfw:commentRss>
		<slash:comments>10</slash:comments>
		</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>drummonds</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 [...]]]></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>
]]></content:encoded>
			<wfw:commentRss>http://vpivot.com/2010/02/22/pvscsi-and-vmxnet3/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Optimizing Network Performance on vSphere</title>
		<link>http://vpivot.com/2009/10/14/optimizing-network-performance-on-vsphere/</link>
		<comments>http://vpivot.com/2009/10/14/optimizing-network-performance-on-vsphere/#comments</comments>
		<pubDate>Wed, 14 Oct 2009 18:25:56 +0000</pubDate>
		<dc:creator>drummonds</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[e1000]]></category>
		<category><![CDATA[esxi]]></category>
		<category><![CDATA[network]]></category>
		<category><![CDATA[vmxnet]]></category>

		<guid isPermaLink="false">http://vpivot.com/?p=129</guid>
		<description><![CDATA[You should probably not be reading this article. What follows is my tale of performance optimizations so arcane and of extremely limited relevance as to make this guidance useful to one customer in 100,000.  The parameters I reference here should rarely&#8211;if ever&#8211;be touched by a VI admin.  I am documenting them for here for that [...]]]></description>
			<content:encoded><![CDATA[<p>You should probably not be reading this article.</p>
<p>What follows is my tale of performance optimizations so arcane and of extremely limited relevance as to make this guidance useful to one customer in 100,000.  The parameters I reference here should rarely&#8211;if ever&#8211;be touched by a VI admin.  I am documenting them for here for that one mischievous soul that is allowed to do as much damage as good in the pursuit of performance excellence.  The rest of you should not even consider these changes for your production environment.</p>
<p>Seriously.  Don&#8217;t do it.  Don&#8217;t do it.</p>
<p><span id="more-129"></span>About two weeks ago I got a call that a large customer was in need of an immediate performance assistance.  Ten hours after that I was on a plane to Boston.  Nine hours later I was sitting in the customer&#8217;s lab looking at the problem.  Five hours later the problem was fixed.  Three hours more and I was reporting out to the customer&#8217;s management.  Two hours after that I was at Fenway with a beer in one hand and chowder in the other.  What follows is a very brief synopsis of the problem and its solutions.</p>
<p>The customer was using VMware on a very strange (non-HCL) server.  Their stringent requirements stated that one virtual machine, configured as a network bridge using RHEL 5.3&#8242;s bridge-utils, must drop zero 64-byte UDP packets at up to 80,000 frames per second.  The <a href="http://www.ixiacom.com/">Ixia</a> device the customer was using for network tests reported that the ESXi-based virtual machine was maxing out at at 20,000 FPS while meeting the 0% packet loss requirement.</p>
<p>I tried about a dozen configuration changes in my half-day of experimentation and learned a few interesting things.</p>
<h2>Occasionally the e1000 Will Outperform vmxnet3</h2>
<p>This was a surprise to me at first but our network team later explained it to me clearly.  The e1000 device will never make a monitor-to-kernel call and instead relies entirely on VMkernel polling to pass information from the guest to the host.  vmxnet does make VMM-&gt;VMk calls after queuing up packets to limit the overhead of packet processing.  This buffering behavior benefits network throughput in about 99% of cases but the additional VMM-&gt;VMk calls were not helpful with this rare workload.</p>
<h2>The vmxnet Throughput/Latency Tradeoff Is Configurable</h2>
<p>ESX and ESXi expose <a href="http://communities.vmware.com/docs/DOC-10892">a large number of advanced network settings</a> that can be used to configure vmxnet&#8217;s predilection for throughput or latency.  Increasing vmxnetThroughputWeight, for instance, tells vmxnet to buffer packets longer to reduce the number of VMM-&gt;VMk calls, thus improving efficiency.  CoalesceTxTimeout will similarly affect buffering by setting a maximum coalesce time for both vmxnet and e1000.</p>
<p>VMware has demonstrated on one workload a successful modification of the default for vmxnetThroughputWeight.  See our <a href="http://www.vmware.com/files/pdf/specweb_perf_final.pdf">SPECweb work that peaked at 16 Gb/s throughput</a>, for instance.  My customer could not benefit from this parameter as it only changes vmxnet behavior but we did see gains by increasing CoalesceTxTimeout.</p>
<h2>Guest Drivers Require Optimization for Small Packets</h2>
<p>The size of the ring queues used by device drivers for physical and virtual devices is configurable.  Those buffers default to 256 entries but can be increased to 4096 for both vmxnet and e1000 when using vSphere.  For very small packets that arrive incredibly rapidly a larger ring queue is needed to avoid unnecessary packet drops.  When I used ethtool to increase in ring queue size the packet drop rate decreased dramatically.</p>
<h2>Summary</h2>
<p>If you have a environment that consistently seeing large volumes of tiny UDP packets (less than 128 B) some of these changes may improve your environment.  But this configuration is uncommon enough in the virtualized enterprise that you probably do not have such a workload.  So, do not start playing with vSphere&#8217;s defaults unless you know you are running an application that is a clear outlier.</p>
]]></content:encoded>
			<wfw:commentRss>http://vpivot.com/2009/10/14/optimizing-network-performance-on-vsphere/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

