Boosting network performance for windows guests (virtio drivers and registry changes)

tom

Proxmox Staff Member
Staff member
Aug 29, 2006
15,896
1,148
273
Just did some network performance tests on our latest release (pvetest).

My test setup:
Intel Modular Server (means fast CPU and Intel NICs). I am doing simple iperf test from one server blade to another.

From host to host (without virtualization) I got the following as a reference:
Code:
iperf -c 192.168.7.50

[  3] local 192.168.7.51 port 45598 connected with 192.168.7.50 port 5001
[ ID] Interval       Transfer     Bandwidth
[  3]  0.0-10.0 sec  1.08 GBytes    929 Mbits/sec
Now, I do the same inside a Win2008r2 guest using virtio network drivers (Driver version 6.0.209.605):
Code:
iperf -c 192.168.7.50

[156] local 192.168.2.210 port 49212 connected with 192.168.7.50 port 5001
[ ID] Interval       Transfer     Bandwidth
[148]  0.0-10.0 sec  246 MBytes   206 Mbits/sec
This is really bad. (with Linux as guest you get near native results) so whats wrong here?

Now I did some secret optimizing and Voila - we got amazing good values (near native):
Code:
iperf -c 192.168.7.50

[156] local 192.168.2.210 port 49164 connected with 192.168.7.50 port 5001
[ ID] Interval       Transfer     Bandwidth
[156]  0.0-10.0 sec  1.05 GBytes   895 Mbits/sec
So well, whats the secret? Just read the KVM wiki pages and apply the registry changes!

I encourage everybody to test and I will create a Proxmox VE wiki page at the end to summarize the findings.
 
Re: Boosting network performance for windows guests (virtio drivers and registry chan

Thanks for the hint, Tom. I just tried, on a windows 2003 R2 SP2 machine and I obtained the same results. ~180 Mbit/sec before, 986 Mbits/sec after. Impressive !

I had to create the registry keys.

Alain
 
Re: Boosting network performance for windows guests (virtio drivers and registry chan

We have make some test :

Server : DELL R410
Network: broadcom giga

############################################################################################################################

PROXMOX DEPOT STABLE 1.6
switch 1000 Mbits/sec - DELL PowerConnect 2824

pve-manager: 1.6-2 (pve-manager/1.6/5087)
running kernel: 2.6.32-4-pve
proxmox-ve-2.6.32: 1.6-19
pve-kernel-2.6.32-4-pve: 2.6.32-19
qemu-server: 1.1-18
pve-firmware: 1.0-9
libpve-storage-perl: 1.0-14
vncterm: 0.9-2
vzctl: 3.0.24-1pve4
vzdump: 1.2-7
vzprocps: 2.0.11-1dso2
vzquota: 3.0.11-1
pve-qemu-kvm: 0.12.5-1
ksm-control-daemon: 1.0-4


********************************************************
LINUX <=> LINUX NO VIRTU
809 Mbits/sec
733 Mbits/sec
736 Mbits/sec
686 Mbits/sec
727 Mbits/sec

=> Moy: 738.20 Mbits/sec


********************************************************
VM WINDOWS 2003 <=> LINUX (no changes in the registry)
176 Mbits/sec (driver virtio 1.0.0.31351)
172 Mbits/sec (driver virtio 1.0.0.31351)
177 Mbits/sec (driver virtio 1.0.0.31351)
179 Mbits/sec (driver virtio 1.0.0.31351)
175 Mbits/sec (driver virtio 1.0.0.31351)

=> Moy: 175.8 Mbits/sec => 24 % natif

********************************************************
VM WINDOWS 2003 <=> LINUX ( with changes in the registry)
471 Mbits/sec (driver virtio 1.0.0.31351)
298 Mbits/sec (driver virtio 1.0.0.31351)
346 Mbits/sec (driver virtio 1.0.0.31351)
441 Mbits/sec (driver virtio 1.0.0.31351)
353 Mbits/sec (driver virtio 1.0.0.31351)

=> Moy: 381 Mbits/sec => 51% natif

********************************************************
VM WINDOWS 2008 R2 <=> LINUX (no changes in the registry)
170 Mbits/sec (driver virtio 6.0.209.605)
174 Mbits/sec (driver virtio 6.0.209.605)
173 Mbits/sec (driver virtio 6.0.209.605)
172 Mbits/sec (driver virtio 6.0.209.605)
172 Mbits/sec (driver virtio 6.0.209.605)

=> Moy: 172 Mbits/sec => 23% natif


********************************************************
VM WINDOWS 2008 R2 <=> LINUX (with changes in the registry)
487 Mbits/sec (driver virtio 6.0.209.605)
484 Mbits/sec (driver virtio 6.0.209.605)
523 Mbits/sec (driver virtio 6.0.209.605)
489 Mbits/sec (driver virtio 6.0.209.605)
533 Mbits/sec (driver virtio 6.0.209.605)

=> Moy: 405 Mbits/sec => 55% natif


############################################################################################################################

PROXMOX DEPOT STABLE 1.7
switch 1000 Mbits/sec - DELL PowerConnect 2824
pve-manager: 1.7-10 (pve-manager/1.7/5323)
running kernel: 2.6.32-4-pve
proxmox-ve-2.6.32: 1.7-28
pve-kernel-2.6.32-4-pve: 2.6.32-28
qemu-server: 1.1-25
pve-firmware: 1.0-9
libpve-storage-perl: 1.0-16
vncterm: 0.9-2
vzctl: 3.0.24-1pve4
vzdump: 1.2-9
vzprocps: 2.0.11-1dso2
vzquota: 3.0.11-1
pve-qemu-kvm: 0.13.0-2
ksm-control-daemon: 1.0-4

********************************************************
LINUX <=> LINUX NO VIRTU
839 Mbits/sec
918 Mbits/sec
835 Mbits/sec
831 Mbits/sec
759 Mbits/sec

=> Moy: 836 Mbits/sec

********************************************************
VM WINDOWS 2003 <=> LINUX (no changes in the registry)
180 Mbits/sec (driver virtio 1.0.0.31351)
176 Mbits/sec (driver virtio 1.0.0.31351)
182 Mbits/sec (driver virtio 1.0.0.31351)
177 Mbits/sec (driver virtio 1.0.0.31351)
179 Mbits/sec (driver virtio 1.0.0.31351)

=> Moy: 179 Mbits/sec => 21 % natif


********************************************************
VM WINDOWS 2003 <=> LINUX (with changes in the registry)
545 Mbits/sec (driver virtio 1.0.0.31351)
527 Mbits/sec (driver virtio 1.0.0.31351)
545 Mbits/sec (driver virtio 1.0.0.31351)
589 Mbits/sec (driver virtio 1.0.0.31351)
531 Mbits/sec (driver virtio 1.0.0.31351)

=> Moy: 547 Mbits/sec => 65% natif

********************************************************
VM WINDOWS 2008 R2 <=> LINUX (no changes in the registry)
166 Mbits/sec (driver virtio 6.0.209.605)
163 Mbits/sec (driver virtio 6.0.209.605)
169 Mbits/sec (driver virtio 6.0.209.605)
164 Mbits/sec (driver virtio 6.0.209.605)
171 Mbits/sec (driver virtio 6.0.209.605)

=> Moy: 167 Mbits/sec => 20% natif

********************************************************
VM WINDOWS 2008 R2 <=> LINUX (with changes in the registry)
600 Mbits/sec (driver virtio 6.0.209.605)
590 Mbits/sec (driver virtio 6.0.209.605)
595 Mbits/sec (driver virtio 6.0.209.605)
600 Mbits/sec (driver virtio 6.0.209.605)
596 Mbits/sec (driver virtio 6.0.209.605)

=> Moy: 596 Mbits/sec => 71% natif

############################################################################################################################
PROXMOX DEPOT STABLE 1.7
switch 1000 Mbits/sec - DELL PowerConnect 2824
pve-manager: 1.7-10 (pve-manager/1.7/5323)
running kernel: 2.6.35-1-pve
proxmox-ve-2.6.32: 1.7-28
pve-kernel-2.6.32-4-pve: 2.6.32-28
pve-kernel-2.6.35-1-pve: 2.6.35-7
qemu-server: 1.1-25
pve-firmware: 1.0-9
libpve-storage-perl: 1.0-16
vncterm: 0.9-2
vzctl: 3.0.24-1pve4
vzdump: 1.2-9
vzprocps: 2.0.11-1dso2
vzquota: 3.0.11-1
pve-qemu-kvm: 0.13.0-2
ksm-control-daemon: 1.0-4

********************************************************
LINUX <=> LINUX NO VIRTU
743 Mbits/sec
714 Mbits/sec
728 Mbits/sec
729 Mbits/sec
729 Mbits/sec

=> Moy: 728 Mbits/sec

********************************************************
VM WINDOWS 2003 <=> LINUX (with changes in the registry)
536 Mbits/sec (driver virtio 1.0.0.31351)
519 Mbits/sec (driver virtio 1.0.0.31351)
614 Mbits/sec (driver virtio 1.0.0.31351)
557 Mbits/sec (driver virtio 1.0.0.31351)
490 Mbits/sec (driver virtio 1.0.0.31351)

=> Moy: 543 Mbits/sec => 74% natif

********************************************************
VM WINDOWS 2008 R2 <=> LINUX (with changes in the registry)
625 Mbits/sec (driver virtio 6.0.209.605)
616 Mbits/sec (driver virtio 6.0.209.605)
589 Mbits/sec (driver virtio 6.0.209.605)
617 Mbits/sec (driver virtio 6.0.209.605)
608 Mbits/sec (driver virtio 6.0.209.605)

=> Moy: 611 Mbits/sec => 83% natif

best regards,
cyril
 
Re: Boosting network performance for windows guests (virtio drivers and registry chan

Anyway on making a script to automated these changes?
 
Re: Boosting network performance for windows guests (virtio drivers and registry chan

Proxmox 2 rc updated, slow performance from win2k8r2 guest to host! Host (proxmox) to host (another physical host on the same giga switch) it near 1gbit. Latest virtio net installed in guest, tried the registry hack (actually using netsh on win2k8) but without any changes! Can anyone please post the exact command line (netsh) parameters to pass to windows to get decent speed? Thanks a lot.
 
Re: Boosting network performance for windows guests (virtio drivers and registry chan

Hello,

- What is the magic that needs to be done to Linux hosts to get the same speed?

Thanks,

Best regards,
Johan
 
Re: Boosting network performance for windows guests (virtio drivers and registry chan

Just run a modern Linux kernel with virtio drivers included. which Linux do you test, what iperf results do you get?
 
Re: Boosting network performance for windows guests (virtio drivers and registry chan

Just run a modern Linux kernel with virtio drivers included. which Linux do you test, what iperf results do you get?


Hello Tom,

- I have Linux (OpenVZ) container: Ubuntu 8.04 standard i_386.

- I have a 5mbit connection to the test server - but download/upload rates are around 500kb

- Read your other posts on users chaning TCP_window sizes.. . but how do i alter those values in Linux...

- Also how do i check so i have Virtio Drivers?

Thanks for any ideas on what to do/test here,

Best regards,
Johan
 
Last edited:
Re: Boosting network performance for windows guests (virtio drivers and registry chan

Hello Tom,

- I have Linux (OpenVZ) container: Ubuntu 8.04 standard i_386.

virtio is a KVM technology. if you use OpenVZ, this does not apply here.

- I have a 5mbit connection to the test server - but download/upload rates are around 500kb

with a 5 mbit connection you can´t expect more than 500kb, thats the expected rate here.
 
Re: Boosting network performance for windows guests (virtio drivers and registry chan

Johan:

- With 5mbit upload/download i mean 5000kb - and i have 500kb at the client - is that to be expected?.


- So not even 1mbit on the client when i have 5mbit total - sorry for beeing unclear.

Thanks,

Best regards,
Johan
 
Re: Boosting network performance for windows guests (virtio drivers and registry chan

seems you mix bits and bytes?

with a 5 mega bit connection you can reach about 500 kilo byte download.
 

About

The Proxmox community has been around for many years and offers help and support for Proxmox VE, Proxmox Backup Server, and Proxmox Mail Gateway.
We think our community is one of the best thanks to people like you!

Get your subscription!

The Proxmox team works very hard to make sure you are running the best software and getting stable updates and security enhancements, as well as quick enterprise support. Tens of thousands of happy customers have a Proxmox subscription. Get yours easily in our online shop.

Buy now!