Category: System Administration

One of our virtual machines had a huge data packet loss (80%+). The host was running Windows 10 Pro and Ubuntu 20 guest. We tested it with the MTR program.

mtr example.com

and that had huge effect on a development of that machine lots of good requests would fail and only few of them would succeed just pretty annoying and you want to keep pushing the code to the git repository from time to time and to be 100% sure that it reached its destination. 

Otherwise you'd have to check the IDEs notification section regularly that's in case Jetbrains IDEs. The errors are displayed in the notification tab.

Solution

The solution turned out to be adding/updating a setting (numRecvBuffers) in the VMX file for that specific virtual machine.

It depends how many network adapters you have assigned to the virtual machine so you may need to increase the counter as needed. Here's we'll be editing ethernet0 adapter.

Steps

  • Turn off the virtual machine
  • Make backup of YOUR_VM_NAME.vmx (ALWAYS!) - WE'RE not responsible for your mistakes!
  • Actually, copy the whole virtual machine folder just in case. If you have time compress it to save space.
  • Locate the .VMX file and use your favourite text editor to open the file.

Look for numRecvBuffers and if you can't find it add it either at the end of the file or after the ethernet0. values so things are better organized. It seems for the E1000 virtual network driver in a Linux guest operating system the default value for numRecvBuffers setting seems to be 256 and the maximum value is 4096. We set it to 2048 and and the packet loss dropped to 1-5%.

ethernet0.numRecvBuffers = 2048

Links

The output of esxtop show dropped receive packets at the virtual switch (1010071) - https://kb.vmware.com/s/article/1010071

Join our mailing list

Get important news about cool products we release and invitations to beta test new products

Find out the Social networks we're on

Black and Cyber Monday Deal: Use blackfriday22 code at checkout for 40% off
Static file optimization by StaticOptimizer