VirtualBox

Ticket #9095 (new defect)

Opened 3 years ago

Last modified 3 years ago

Slow traffic between VMs on same host

Reported by: gnordli Owned by:
Priority: major Component: network
Version: VirtualBox 4.0.8 Keywords:
Cc: Guest type: Windows
Host type: Linux

Description

I upgraded from 3.2.12, which was working fine.

Network traffic to Internet and other VMs (not on the same host) is normal.

Data transfer between VMs on the same host is very, very slow ~16KB/s.

I am using virtio, but have tried using an Intel Pro/1000 MT Desktop (82540EM) adapter as well.

Attachments

grok-ad1-2011-06-21-13-03-00.log Download (131.0 KB) - added by gnordli 3 years ago.
grok-sql1-2011-06-19-17-13-25.log Download (52.9 KB) - added by gnordli 3 years ago.
network traffic screenshot.png Download (13.5 KB) - added by gnordli 3 years ago.

Change History

Changed 3 years ago by gnordli

Changed 3 years ago by gnordli

Changed 3 years ago by gnordli

comment:1 Changed 3 years ago by aleksey

Am I correct in my assumption that you are using RedHat virtio drivers in Windows guests? If so what is the version shown in driver properties? Can you install some kind of packet capture tool into one of the guests and do the capture? This one is quite popular:  http://www.wireshark.org/

comment:2 Changed 3 years ago by gnordli

VirtIO driver is 6.0.209.605.

I have also tried it though with regular Intel drivers and there is no difference.

I sent you the file directly since there is some private information in it.

I think there is a bug somewhere in the vbox networking stack.

If I enable nictrace and dump it to /dev/null, then the performance returns to what it was like before I upgraded from 3.2 series.

comment:3 Changed 3 years ago by jeroen

This is all being caused by offloading, which apparently is not implemented in the virtio driver.

In a Linux VM first check with: ethtool -k eth0

if the offloading features are enabled, then just do: ethtool -K eth0 tso off ethtool -K eth0 gso off

And voila all your problems disappear.

As such, please implement offloading in the virtio driver ;)

comment:4 Changed 3 years ago by jeroen

Argh, no formatting, let me fix that:

This is all being caused by offloading, which apparently is not implemented in the virtio driver.

In a Linux VM first check with:

ethtool -k eth0

if the offloading features are enabled, then just do:

ethtool -K eth0 tso off
ethtool -K eth0 gso off

And voila all your problems disappear as now the kernel handles this instead of offloading it to the NIC.

As such, please implement offloading in the virtio driver ;)

comment:5 Changed 3 years ago by gnordli

If it was due to offloading, then why does setting the nictrace on the VM return the performance?

Why did this only appear after I upgraded from 3.2 to 4.0?

comment:6 Changed 3 years ago by jeroen

Run wireshark/tcpdump on the VM and you should see that there are packets with sizes of 2916 bytes or such, this as the kernel just forwards these large packets to the driver which should then chunk them up, which is not happening. As these packets are broken, the kernel has to resend packets and stuff just slows down to a mere halt, as that is how TCP works ;)

Now it might be that you have a different issue than this, but at least try it, as it solved it for me (Mac Host with 2 Linux VMs).

comment:7 Changed 3 years ago by jeroen

As you are actually talking about Windows VMs, see  http://support.microsoft.com/kb/888750 which showed the same issue but with VirtualPC instead of VirtualBox and shows how to resolve it in Windows by disabling offloading.

Note: See TracTickets for help on using tickets.

www.oracle.com
ContactPrivacy policyTerms of Use