<div dir="ltr">Hello people,<div><br></div><div style>For a while now, I have been facing some odd network speed issues with Virtualbox but wasn't able to pint-point it down... until now !</div><div style>Please bare with me while I explain this.</div>

<div style><br></div><div style>To give you some background story, the first time I met this issue was while testing the speed of a proftpd server running in a Debian Wheezy VM on a Linux Wheezy host, both 64 bits.</div>
<div style>
Following the good recommendations of the User Manual aswell as the forum folks, I decided to set the NIC to VirtIO. I was also doing this speed test via an OpenVPN connection.</div><div style>The speed was always stuck at 8 Mbps for some odd reason. A bit out of time, I discarded this as the VPN's fault, without further investigation.</div>

<div style><br></div><div style>Some months later, I was installing some software (Sage BOB50) in a Win 7 64 bits VM which requires access to a Sybase DB, running in a Win2k8 R2 64 bits VM.</div><div style>And disaster happened : for some reason, the software was just terribly slow and took minutes to open, where between physical machines, it took seconds.</div>

<div style>I was initialy stuck with this issue, searching in the guest OS & in the software configuration for some answers. After some check, I noticed that the speed was of 8 Mbps (oh oh).</div><div style>At that point, I decided to change the adapter types and when both VMs had the Intel 1000T desktop, it was a revelation. The program now opened in seconds !</div>

<div style><br></div><div style>I have finally been around to do some proper speed tests, and they might not be concluant as such and I will let you, devs especially, decide.</div><div style>To perform the tests, I have setup 2 Win7 64 bits VMs with 3 adapters each.</div>

<div style>Virtualbox version is 4.2.8, on Debian Wheezy with Testing repos.</div><div style><br></div><div style>Each VM adapater was only left with IPv4 enabled, everything disabled. Static IP were used & NetBios disabled, no other config was changed.</div>

<div style><br></div><div style>VM 1 has the following :</div><div style><div>NIC 1:           MAC: 080027DE6FE9, Attachment: Internal Network 'virtio2virtio', Cable connected: on, Trace: off (file: none), Type: virtio, Reported speed: 0 Mbps, Boot priority: 0, Promisc Policy: deny, Bandwidth group: none</div>

<div>NIC 2:           MAC: 0800274EBA58, Attachment: Internal Network 'virtio2intel', Cable connected: on, Trace: off (file: none), Type: virtio, Reported speed: 0 Mbps, Boot priority: 0, Promisc Policy: deny, Bandwidth group: none</div>

<div>NIC 3:           MAC: 080027C92821, Attachment: Internal Network 'intel2intel', Cable connected: on, Trace: off (file: none), Type: 82540EM, Reported speed: 0 Mbps, Boot priority: 0, Promisc Policy: deny, Bandwidth group: none</div>

<div><br></div><div style>VM 2 has the following :</div><div style><div>NIC 1:           MAC: 08002780E65C, Attachment: Internal Network 'virtio2virtio', Cable connected: on, Trace: off (file: none), Type: virtio, Reported speed: 0 Mbps, Boot priority: 0, Promisc Policy: deny, Bandwidth group: none</div>

<div>NIC 2:           MAC: 080027009399, Attachment: Internal Network 'virtio2intel', Cable connected: on, Trace: off (file: none), Type: 82540EM, Reported speed: 0 Mbps, Boot priority: 0, Promisc Policy: deny, Bandwidth group: none</div>

<div>NIC 3:           MAC: 080027592203, Attachment: Internal Network 'intel2intel', Cable connected: on, Trace: off (file: none), Type: 82540EM, Reported speed: 0 Mbps, Boot priority: 0, Promisc Policy: deny, Bandwidth group: none</div>

<div><br></div><div style>The idea is to have 3 networks :</div><div style>- the first with each VM with VirtIO</div><div style>- the 2nd with only one VirtIO and the 82540EM</div><div style>- the last with only 82540EM.</div>

<div style><br></div><div style>Following IPs were given :</div><div style>virtio2virtio - <a href="http://10.0.0.1/24">10.0.0.1/24</a> - <a href="http://10.0.0.2/24">10.0.0.2/24</a><br></div><div style>virtio2intel - <a href="http://10.0.1.1/24">10.0.1.1/24</a> - <a href="http://10.0.1.2/24">10.0.1.2/24</a><br>

</div><div style>intel2intel - <a href="http://10.0.2.1/24">10.0.2.1/24</a> - <a href="http://10.0.2.2/24">10.0.2.2/24</a><br></div><div style><br></div><div style>Finally, I've run iperf 3 times with 3 different TCP window (2000, 20000, 200000). I have put the results on pastebin to avoid a huge spam : <a href="http://pastebin.com/niPzc1ep">http://pastebin.com/niPzc1ep</a></div>

<div style><br></div><div style>To sum it up :</div><div style>- virtio2virtio is capped at 8 Mbps average for a TCP window of 2000, same speed as I saw in my 2 speed issues, has acceptable speed at 20000 but slows down at 2000000.</div>

<div style>- virtio2intel gets faster & faster as the window increase but is still quite slow from what we could expect (244 Mbps @ 200000)</div><div style>- intel2intel is the fastest, I get 875 Mbps @ 20000 and 1,3 Gbps @ 200000 !</div>

<div style><br></div><div style>Am I missing something obvious here? Is it a bug? From the User Manual, VirtIO should be fastest, but clearly is not and can cause issues.</div><div style>I haven't had time to perform this under a Linux guest but from my experience, the issue is the same.</div>

<div style>Please let me know if you need more info on my setup.</div><div style><br></div><div style>Best regards,</div><div style>Max</div></div></div></div>