Opened 13 years ago
Closed 8 years ago
#9095 closed defect (obsolete)
Slow traffic between VMs on same host
Reported by: | Geoff Nordli | Owned by: | |
---|---|---|---|
Component: | network | Version: | VirtualBox 4.0.8 |
Keywords: | Cc: | ||
Guest type: | Windows | Host type: | Linux |
Description (last modified by )
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 (3)
Change History (11)
by , 13 years ago
Attachment: | grok-ad1-2011-06-21-13-03-00.log added |
---|
by , 13 years ago
Attachment: | grok-sql1-2011-06-19-17-13-25.log added |
---|
by , 13 years ago
Attachment: | network traffic screenshot.png added |
---|
comment:1 by , 13 years ago
comment:2 by , 13 years ago
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 by , 13 years ago
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 by , 13 years ago
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 by , 13 years ago
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 by , 13 years ago
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 by , 13 years ago
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.
comment:8 by , 8 years ago
Description: | modified (diff) |
---|---|
Resolution: | → obsolete |
Status: | new → closed |
Please reopen if still relevant with a recent VirtualBox release.
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/