Loading

×Sorry to interrupt
This page has an error. You might just need to refresh it.
[NoErrorObjectAvailable] Uncaught ReferenceError: addCTracking is not defined
Failing descriptor: {markup://c:KM_ArticleThemeLayout}

Refresh

Cookie Preference Center

General Information on cookies

When you visit our website, we use cookies to ensure that we give you the best experience. This information does not usually directly identify you, but it can give you a more personalized web experience. Because we respect your right to privacy, you can choose not to allow some types of cookies by clicking on the different category headings to find out more and change your settings. However, blocking some types of cookies may impact your experience on the site and the services we are able to offer. Further information can be found in our

Cookie Policy.

Strictly Necessary

Strictly Necessary

Always Active

Strictly Necessary

Strictly necessary cookies are always enabled since they are essential for our website to function. They enable core functionality such as security, network management, and website accessibility. You can set your browser to block or alert you about these cookies, but this may affect how the website functions. For more information please visit www.aboutcookies.org or www.allaboutcookies.org.

Cookie Details‎

Performance

Performance

Performance

Performance cookies are used to analyze the user experience to improve our website by collecting and reporting information on how you use it. They allow us to know which pages are the most and least popular, see how visitors move around the site, optimize our website and make it easier to navigate.

Cookie Details‎

Please confirm your settings by refreshing the page.

Functional

Functional

Functional

Functional cookies help us keep track of your past browsing choices so we can improve usability and customize your experience. These cookies enable the website to remember your preferred settings, language preferences, location and other customizable elements such as font or text size. If you do not allow these cookies, then some or all of these services may not function properly.

Cookie Details‎

Advertising

Advertising

Advertising

Advertising cookies are used to send you relevant advertising and promotional information. They may be set through our site by third parties to build a profile of your interests and show you relevant advertisements on other sites. These cookies do not directly store personal information, but their function is based on uniquely identifying your browser and internet device.

Cookie Details‎

Advertising Cookies

Consent Leg.Interest

Select All Vendors

Select All Vendors

Select All Hosts

Select All

Clear Filters

Information storage and access

Apply

Confirm My Choices Reject All Allow All

Skip to main content

My Subscriptions

Loading

Knowledge Base

Poor Network Throughput Between Virtual Machines on the Same ESX Server Machine (1428)

Last Updated: 4/6/2011Categories: TroubleshootingTotal Views: 18632Language:
English

Subscribe to get an email
newsletter with new updates

Please provide article feedback:

Details

I've observed poor network throughput between virtual machines on the same ESX Server machine.
It seems worse than performance between the virtual machines and the physical machines to which they connect . What should I do to troubleshoot this?

Solution

Network throughput depends on a number of factors which vary across applications and hardware platforms.

Note: If a networking-intensive application doesn't require multiple processors, then using a single processor virtual machine is recommended as this allows ESX Server to make more efficient use of the underlying physical machine.

Throughput between a virtual machine and a physical machine can be higher than the throughput between virtual machines, especially when the virtual machine is the sender.

In some cases, low throughput between virtual machines on the same ESX Server machine may be caused by TCP flow control misfiring. This situation can be identified by observing virtual network card activity as follows:

Use the following command at the ESX Server service console to periodically monitor the following proc node:
watch cat /proc/vmware/net/vmnic0/stats
Note: The 0 value in the example above should be changed to match whatever vmnic you are monitoring.

While the watch is running, start the network application(s) running in the affected guest operating systems.

Examine value of the RxQOv counter in the line labeled Remote.

To stop the watch, press Ctrl-C.

Another way to collect the desired information is to create a small script: (note backticks "`" in the echo statement!):
while (`true`); do
echo ------------ `/bin/date --rfc-822` >> /tmp/vmnic-log.txt
# to display header
cat /proc/vmware/net/vmnic0/stats |grep pkts >> /tmp/vmnic-log.txt
# to display data
cat /proc/vmware/net/vmnic0/stats |grep Remote >> /tmp/vmnic-log.txt
sleep 5 ;
done

Open a second console window and type tail -f /tmp/vmnic-log.txt to view the file as it's written. Cancel the script by pressing Ctrl-C in the original console window.

If the value of the RxQOv counter rises during this test, the receiver is running out of buffers to hold the data transmitted by the sender.

Buffer overflows result in data having to be retransmitted by the sender, which effectively limits the bandwidth. Possible workarounds are to increase the number of receive buffers, reduce the number of transmit buffers, or both. These workarounds may increase workload on the physical CPUs.

The default number of receive and transmit buffers is 100 each. The maximum possible for ESX Server 2.1.x is 128. You can alter the default settings by placing one or both of the following parameters in the .vmx (configuration) files for the affected virtual machines.

Below are examples of setting the maximum number of receive buffers and transmit buffers to 128 and 64, respectively. These values are not universally applicable; actual settings depend on the application and may require experimentation.

Ethernet0.numRecvBuffers=128
Ethernet0.numXmitBuffers=64

Note: Change the 0 value in the examples above to match whichever virtual NIC you wish to update.

In a limited number of cases, an alternative to the above method may be to use the vlance network adapter driver. The vmxnet and vlance network adapter drivers have different buffering schemes. When using vmxnet, if the RxQOv counter is seen to increase at a rapid rate, it may be possible to avoid buffer overflows and achieve higher throughput by using the vlance network adapter driver. Using vlance is not preferred, however, because any throughput increase achieved is typically lower than can be obtained with the vmxnet adapter driver. It is also possible to see a lower throughput with the vlance driver than originally observed with the vmxnet driver even with the buffer overflows condition.

Detectable by VMware SkylineTM

Actions

Copy

link to clipboard
copied!

Print

Language:
English

Attachments

Additional Resources

KB
•
End Of General Availability of the Free vSphere Hypervisor (ESXi 7.x and 8.x) (2107518)

Result 1 of 1

Ask The Community

Get answers quickly from VMware experts in the community

Post Subject

CONTINUE IN COMMUNITIES

Related Products:

VMware ESX Server

Related Versions:

VMware ESX Server 2.5.x

VMware ESX Server 2.1.x

VMware ESX Server 2.0.x

Take Our Survey

Was this article helpful?

YES

NO

Copyright © 2005-2024 Broadcom. All Rights Reserved. The term “Broadcom” refers to Broadcom Inc. and/or its subsidiaries.

Terms of Use

Your California Privacy Rights

Privacy

Accessibility

Cookie Settings

Support Assistant