<?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; network</title>
	<atom:link href="http://vpivot.com/tag/network/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>Virtual Network Best Practices Aggregation</title>
		<link>http://vpivot.com/2011/03/03/virtual-network-best-practices-aggregation/</link>
		<comments>http://vpivot.com/2011/03/03/virtual-network-best-practices-aggregation/#comments</comments>
		<pubDate>Thu, 03 Mar 2011 09:53:43 +0000</pubDate>
		<dc:creator>drummonds</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[aggregate]]></category>
		<category><![CDATA[network]]></category>

		<guid isPermaLink="false">http://vpivot.com/?p=818</guid>
		<description><![CDATA[This week a colleague of mine asked me to help out with a customer&#8217;s network design in his VMware environment.  I have long possessed the kind of socratic wisdom that allows me to recognize my ignorance.  And I have either the confidence of the foolishness to boldly announce here that I am a networking ignoramus. [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignleft" title="Socrates" src="http://www.nndb.com/people/696/000087435/socrates-1-sized.jpg" alt="" hspace="10" width="249" height="328" />This week a colleague of mine asked me to help out with a customer&#8217;s network design in his VMware environment.  I have long possessed the kind of <a href="http://en.wikipedia.org/wiki/I_know_that_I_know_nothing">socratic wisdom</a> that allows me to recognize my ignorance.  And I have either the confidence of the foolishness to boldly announce here that I am a networking ignoramus.  But the journey to enlightenment starts with one step.</p>
<p>I started my research on Twitter and asked friends to help me find whitepapers on the subject of VMware environment network best practices.  One Tweep (<a href="http://twitter.com/potatohead5280">Nate Raper</a>) asked me to share everything I found.  This article, vPivot&#8217;s first aggregation, contains the VMware environment network papers that I have received and reviews.</p>
<p><span id="more-818"></span>Below are the network papers I know of and my comments on them.  I will continue to add to this list as more papers come to my attention.</p>
<table>
<thead>
<tr>
<th>Title</th>
<th>Date</th>
<th>Author</th>
<th>Comments</th>
</tr>
</thead>
<tbody>
<tr>
<td><a href="http://www.cisco.com/application/pdf/en/us/guest/netsol/ns304/c649/ccmigration_09186a00807a15d0.pdf">VMware Infrastructure 3 in a Cisco Network Environment</a></td>
<td>2008</td>
<td>Cisco</td>
<td>The single best paper to introduce networking neophytes to virtual environment networking.  Covers the VMware basics like &#8220;What is a portgroup?&#8221;, &#8220;Can virtual machines see each others traffic?&#8221;, and &#8220;How do I configure vSphere for VLANs?&#8221;  Also introduces network topology in VMware environments.  Unfortunately there is no discussion of network features introduced since vSphere.</td>
</tr>
<tr>
<td><a href="http://www.vmware.com/files/pdf/techpaper/VMW_Netioc_BestPractices.pdf">VMware Network I/O Control: Architecture, Performance and Best Practices</a></td>
<td>2010</td>
<td>VMware</td>
<td>As with most of VMware&#8217;s performance papers, this document is not about providing general guidance as much as analyzing the product under certain circumstances.  But this is one of the only data-backed white papers on NetIOC and serves as a good overview of the technology and proof of its value.  The small &#8220;NetIOC Best Practices&#8221; section on page 24 is mandatory reading for anyone using vDS and 10gE.</td>
</tr>
<tr>
<td><a href="http://www.vmware.com/files/pdf/vsphere-vnetwork-ds-migration-configuration-wp.pdf">VMware vNetwork Distributed Switch: Migration and Configuration</a></td>
<td>2009</td>
<td>VMware</td>
<td>This paper accompanied the vSphere launch in 2009 and introduced the world to the vNetwork Distributed Switch (vDS).  Like the Cisco paper, this document is aimed more at explaining what the technologies are than how they should be be used.  However, there is a great section on vSwitch-to-vDS migrations that is worth of read if you are considering the change.  As I learned in a vSpecialist lab session in Tokyo a while back, migration to vDS is pretty easy.  But if you do not think out the process in advance, you could find yourself stuck.</td>
</tr>
<tr>
<td><a href="http://kensvirtualreality.wordpress.com/2009/03/29/the-great-vswitch-debate-part-1/">The Great vSwitch Debate</a></td>
<td>2009</td>
<td>Ken Cline</td>
<td>This series is the richest source of true best practices with respect to VMware networking.  Ken interleaves his recommendations on network design, nomenclature, and VMware feature choices with with technical explanations of how things work and why you should listen to him.  Like many of the articles on this list, Ken published this blog series before vSphere was released so no vDS descriptions are included.</td>
</tr>
<tr>
<td><a href="http://www.vmware.com/pdf/Perf_Best_Practices_vSphere4.1.pdf">Performance Best Practices for VMware vSphere 4.1</a></td>
<td>2010</td>
<td>VMware</td>
<td>This document is the staple for every performance-minded VMware administrator.  Consider this the &#8220;old testament&#8221; of VMware performance documents.  All other performance law springs from this.  But a networking document it is not.  If you are looking for networking guidance, skip this whitepaper&#8217;s meagre discourse the subject.</td>
</tr>
<tr>
<td><a href="http://media.netapp.com/documents/tr-3749.pdf">NetApp and VMware vSphere Storage Best Practices</a></td>
<td>2010</td>
<td>NetApp</td>
<td>This is the first document I read in my hunt to understanding networking.  I would not have thought my first education on the subject would come from a storage company but NetApp provided some solid, concise guidance on networks in this paper.  Pages 23-30 present a concise summary that should be reviewed like a checklist against your environment: VLANs, jumbo frames, MSLA, etc.  This paper both explains and instructs on a short list of very important topics.</td>
</tr>
<tr>
<td><a href="http://www.equallogic.com/resourcecenter/assetview.aspx?id=5229">DELL EQUALLOGIC PS SERIES NETWORK PERFORMANCE GUIDELINES</a></td>
<td>2009</td>
<td>Dell/EqualLogic</td>
<td>On its surface this is a comparable paper to the NetApp one on the subject.  But, unlike the well-written and well-organized NetApp effort, this whitepaper reads more like a bulleted list than an instructional document.  On top of that, the formatting is funny and there is an inexplicable highlight on page four.  Skip this paper and use NetApp&#8217;s if you want a storage-minded view of networking.</td>
</tr>
</tbody>
</table>
<p>If you know of any other networking documents focused on VMware deployments, please mention them in the comments. I will continue reading them and linking them here.</p>
]]></content:encoded>
			<wfw:commentRss>http://vpivot.com/2011/03/03/virtual-network-best-practices-aggregation/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>vSphere 4.1: Performance Improvements</title>
		<link>http://vpivot.com/2010/07/22/vsphere-4-1-performance-improvements/</link>
		<comments>http://vpivot.com/2010/07/22/vsphere-4-1-performance-improvements/#comments</comments>
		<pubDate>Thu, 22 Jul 2010 03:28:58 +0000</pubDate>
		<dc:creator>drummonds</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[memory]]></category>
		<category><![CDATA[netioc]]></category>
		<category><![CDATA[network]]></category>
		<category><![CDATA[numa]]></category>
		<category><![CDATA[sioc]]></category>
		<category><![CDATA[vmotion]]></category>

		<guid isPermaLink="false">http://vpivot.com/?p=605</guid>
		<description><![CDATA[Last week I took my first vacation in a year and a half.  I had not missed a single day of work in 18 months.  So last week, when I was galavanting through Spain and running terrified, screaming, and covered in sangria through the streets of Pamplona, VMware made its biggest announcement in over a [...]]]></description>
			<content:encoded><![CDATA[<p>Last week I took my first vacation in a year and a half.  I had not missed a single day of work in 18 months.  So last week, when I was galavanting through Spain and <a href="http://www.e-scott.net/blog/?p=332">running terrified, screaming, and covered in sangria through the streets of Pamplona</a>, VMware made its biggest announcement in over a year: <a href="http://www.vmware.com/company/news/releases/vsphere-4-1.html">the launch of vSphere 4.1</a>.  My old team put out what looks to be a wonderful &#8220;<a href="http://www.vmware.com/resources/techresources/10116">What&#8217;s New in Performance</a>&#8221; paper so I want to take a few minutes to add my thoughts to some of the great work VMware has done.</p>
<p><span id="more-605"></span>Calling attention to a subset of the performance features in this launch, I will augment the published documentation with my own comments.</p>
<h2>Wide VM NUMA Support</h2>
<p>A &#8220;wide VM&#8221; is defined by VMware as a virtual machine whose memory is too large for a single NUMA node.  In this case, some of the memory must be placed on a remote node, which has a relatively higher memory latency.  ESX 4.0 would place as much memory as possible on a single node, then arbitrarily spill the rest over to other nodes.  ESX 4.1 now recognizes memory locality of reference and places frequently accessed memory on the local node, potentially eliminating remote memory access penalties.  Expect big gains with wide virtual machines running Java or very active databases.</p>
<h2>Memory Compression</h2>
<p>When I wrote on <a href="http://vpivot.com/2010/03/01/memory-compression/">Steve Herrod&#8217;s preview of memory compression at PEX</a>, I am sure you knew this feature&#8217;s release was imminent.  VMware&#8217;s documentation is sufficient on the gains provided by this feature, so I will not repeat those gains here.  The key thing to remember about memory compression is that it greatly reduces the need for swap.  For years VMware administrators have feared the spectre of memory swapping and have left memory woefully underutilized, even in consolidated environments.  With memory compression in place, you should more confidently push active memory closer to 100%.</p>
<h2>Storage IO Control (SIOC)</h2>
<p>Before the new VMware documentation, you had <a href="http://vpivot.com/2010/05/04/storage-io-control/">my article on SIOC</a> and a <a href="http://www.youtube.com/watch?v=5GN5f1u7pcc">delightful video</a> previewing the feature to whet your appetites.  Now that the feature is out, I want to repeat the moral of the story: SIOC will save your high priority applications&#8217; in the event of storage contention.  But if you storage performance stinks before SIOC, it will continue to stink with SIOC.  SIOC just buys you time for your mission critical applications so you can correct that storage problem.</p>
<h2>Faster vMotion</h2>
<p>(I&#8217;ll take a break here and point out the change of spelling from VMotion to vMotion.  This innocuous change will surely be missed by the large numbers of people that misspell VMWare [sic].  In truth, the case of vMotion is not particularly critical, but those of you grammatical pedants like myself take note.)</p>
<p>Many customers, already happy with vMotion, will scratch their heads as to what is left to be improved in this feature.  But a large number of you have tried evacuating 100 virtual machines from a host.  At two virtual machines at a time, this evacuation would have taken tens of minutes.  VMware was not limiting the vMotion concurrency for no good reason; they wanted to guarantee 100% correctness.  Careful evaluation, experimentation, and critical code improvements allowed the vMotion engineering team to greatly improve the efficiency of a migration in vSphere 4.1.  The result is that virtual machines more efficiency use the vMotion network which means VMware can qualify and support more virtual machines being concurrently migrated.</p>
<p>Part of this efficiency change included a decrease in the virtual machine switchover time, during which the application is unresponsive.  In every production environment I have seen, this switchover time was quite small, resulting in no application downtime.  But as processor performance and memory access time improved, and with vMotion efficiency remaining flat, eventually pages would be touched faster than vMotion could migrate them.  This would result in vMotion failures.</p>
<p>The new vMotion efficiency improvements have dropped application switchover times to minuscule levels, guaranteeing zero application downtime for many years to come.</p>
<h2>Network IO Control</h2>
<p>Missing from the recently published performance document is an overview on Network IO Control (NetIOC).  In truth, I may be responsible for its lack of inclusion.  Apologies.  But luckily performance engineering released a <a href="https://docs.google.com/viewer?url=http://www.vmware.com/files/pdf/techpaper/VMW_Netioc_BestPractices.pdf">best practices document</a> on this wonderful new feature.</p>
<p>NetIOC is the network version of SIOC and may be even more important than SiOC in 10 Gb network environments and infrastructure using converged network adapters.  Let us be honest: the best practice of giving dedicated network hardware to each vSphere network traffic stream is so 2007.  It&#8217;s time to consolidate network and put everything on fewer 10 Gb adapters.  But this is going to create occasional network contention that would benefit from the same resource prioritization that CPU and memory shares have provided for years.</p>
<p>NetIOC will help prioritize your network streams in such an environment.  Converge your networks and investigate NetIOC.</p>
]]></content:encoded>
			<wfw:commentRss>http://vpivot.com/2010/07/22/vsphere-4-1-performance-improvements/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<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>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>drummonds</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?  [...]]]></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>
]]></content:encoded>
			<wfw:commentRss>http://vpivot.com/2010/03/03/maximum-concurrent-vmotions/feed/</wfw:commentRss>
		<slash:comments>4</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>

