Bad virtio network performance in windows 7

  • Thread starter Thread starter codainnln
  • Start date Start date
C

codainnln

Guest
Hi,

I have installed Windows 7 in a KVM virtual machine, and I'm having bad network performance.
Right now I'm using a e1000 emulated driver, which gives me about 40MB/s of reading speed, when I'm copying a binary file through samba. The samba server itself is the Proxmox VE server.

When I am copying the file through samba from a physical machine, I get read speeds of around 80MB/s.

The virtio drivers gives me about 12MB/s consistent speed.

Here is the output of the Promox server:

Code:
pve-manager: 1.5-7 (pve-manager/1.5/4660)
running kernel: 2.6.32-1-pve
pve-kernel-2.6.32-1-pve: 2.6.32-4
pve-kernel-2.6.24-9-pve: 2.6.24-18
pve-kernel-2.6.24-8-pve: 2.6.24-16
qemu-server: 1.1-11
pve-firmware: 1.0-3
libpve-storage-perl: 1.0-10
vncterm: 0.9-2
vzctl: 3.0.23-1pve8
vzdump: 1.2-5
vzprocps: 2.0.11-1dso2
vzquota: 3.0.11-1

And here is the config file of the Windows 7 machine:

Code:
name: vm-Windows7
bootdisk: ide0
ostype: other
ide0: VirtualMachines:105/vm-105-disk-1.raw
memory: 2048
sockets: 2
boot: ca
freeze: 0
cpuunits: 1000
vga: cirrus
acpi: 1
kvm: 1
onboot: 1
cores: 2
args: -cpu host
vlan0: e1000=F6:34:17:7F:E0:1D
 
I boosted the performance of a win2008 virtio server using the following:
a) changed hd from qcow2 to raw
b) changed caching to none in /etc/qemu-server/vmid.conf:
125.conf:virtio0: vms02:125/vm-125-disk-1.raw,cache=none

Maybe this also helps in windows 7 ?
 
I assume you are talking about disk performance... I understand I am still using IDE emulation for my C: drive, but I'm having better speeds with a emulated e1000 driver. this would mean that the network driver is the bottleneck?

Or should everything be virtio? (as in disk=virtio, network=virtio)
When I use the e1000 driver, my RDP sessions go alot smoother then with the virtio driver (which is important for me, I'm planning to use the virtual machine for daily use over RDP)

Anyways, I will look to install the virtio storage driver, but the last I have tried, was not a great success.
I would need to sign the storage driver, because windows 7 says: "this driver is not designed for this syustem", or something like that. My windows 7 is in dutch, so this is not the correct "google ready" translation. The OS itself is 32bit.
-->Does anybody have more tips on this?
 
This is the output of lspci:

00:00.0 Host bridge: Intel Corporation 5000V Chipset Memory Controller Hub (rev b1)
00:02.0 PCI bridge: Intel Corporation 5000 Series Chipset PCI Express x8 Port 2-3 (rev b1)
00:03.0 PCI bridge: Intel Corporation 5000 Series Chipset PCI Express x4 Port 3 (rev b1)
00:08.0 System peripheral: Intel Corporation 5000 Series Chipset DMA Engine (rev b1)
00:10.0 Host bridge: Intel Corporation 5000 Series Chipset FSB Registers (rev b1)
00:10.1 Host bridge: Intel Corporation 5000 Series Chipset FSB Registers (rev b1)
00:10.2 Host bridge: Intel Corporation 5000 Series Chipset FSB Registers (rev b1)
00:11.0 Host bridge: Intel Corporation 5000 Series Chipset Reserved Registers (rev b1)
00:13.0 Host bridge: Intel Corporation 5000 Series Chipset Reserved Registers (rev b1)
00:15.0 Host bridge: Intel Corporation 5000 Series Chipset FBD Registers (rev b1)
00:16.0 Host bridge: Intel Corporation 5000 Series Chipset FBD Registers (rev b1)
00:1c.0 PCI bridge: Intel Corporation 631xESB/632xESB/3100 Chipset PCI Express Root Port 1 (rev 09)
00:1d.0 USB Controller: Intel Corporation 631xESB/632xESB/3100 Chipset UHCI USB Controller #1 (rev 09)
00:1d.1 USB Controller: Intel Corporation 631xESB/632xESB/3100 Chipset UHCI USB Controller #2 (rev 09)
00:1d.2 USB Controller: Intel Corporation 631xESB/632xESB/3100 Chipset UHCI USB Controller #3 (rev 09)
00:1d.3 USB Controller: Intel Corporation 631xESB/632xESB/3100 Chipset UHCI USB Controller #4 (rev 09)
00:1d.7 USB Controller: Intel Corporation 631xESB/632xESB/3100 Chipset EHCI USB2 Controller (rev 09)
00:1e.0 PCI bridge: Intel Corporation 82801 PCI Bridge (rev d9)
00:1f.0 ISA bridge: Intel Corporation 631xESB/632xESB/3100 Chipset LPC Interface Controller (rev 09)
00:1f.1 IDE interface: Intel Corporation 631xESB/632xESB IDE Controller (rev 09)
00:1f.2 SATA controller: Intel Corporation 631xESB/632xESB SATA AHCI Controller (rev 09)
00:1f.3 SMBus: Intel Corporation 631xESB/632xESB/3100 Chipset SMBus Controller (rev 09)
01:00.0 PCI bridge: Intel Corporation 6311ESB/6321ESB PCI Express Upstream Port (rev 01)
01:00.3 PCI bridge: Intel Corporation 6311ESB/6321ESB PCI Express to PCI-X Bridge (rev 01)
02:00.0 PCI bridge: Intel Corporation 6311ESB/6321ESB PCI Express Downstream Port E1 (rev 01)
02:01.0 PCI bridge: Intel Corporation 6311ESB/6321ESB PCI Express Downstream Port E2 (rev 01)
02:02.0 PCI bridge: Intel Corporation 6311ESB/6321ESB PCI Express Downstream Port E3 (rev 01)
03:00.0 PCI bridge: Intel Corporation 80333 Segment-A PCI Express-to-PCI Express Bridge
03:00.2 PCI bridge: Intel Corporation 80333 Segment-B PCI Express-to-PCI Express Bridge
04:0e.0 RAID bus controller: Areca Technology Corp. ARC-1210 4-Port PCI-Express to SATA RAID Controller
06:00.0 Ethernet controller: Intel Corporation 82572EI Gigabit Ethernet Controller (Copper) (rev 06)
07:00.0 Ethernet controller: Intel Corporation 80003ES2LAN Gigabit Ethernet Controller (Copper) (rev 01)
07:00.1 Ethernet controller: Intel Corporation 80003ES2LAN Gigabit Ethernet Controller (Copper) (rev 01)
0b:0c.0 VGA compatible controller: ATI Technologies Inc ES1000 (rev 02)
0b:0d.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL-8139/8139C/8139C+ (rev 10)

Edit: I am noticing that my output of pveversion shows less information than others, I also run KSM, but don't see such thing in pveversion?
 
Last edited by a moderator:
Yes this is interesting stuff, will look into it tonight!

It seems to be stuck at 100mpbs.
 
But your physical link in proxmox is ok and up at gigabit ?
use "ethtool ethX" to find out.
I also had problems sometimes with wrong autonegotiation on the physical side
 
Yes, when I connect my laptop to the server (and even over a couple switches) I get a whopping 110MB/s read speed over NFS and 80MB/s over samba.
 
I will try to reinstall Windows 7 (32bit), but now with the virtio drivers preinstalled with the Windows installation.

Afterwards, I'll install net netkvm drivers.
 
I have installed Windows 7 with the virtio block storage drivers, and also the netkvm driver, and I'm having lower speeds then with the previous installation.

Promox VE ftp server -> 16MB/s
Proxmox VE samba server -> VM 11MB/s
Centrino 2 laptop with Gigabit -> VM 6MB/s

Does anybody have a clue??