none
Slow network CentOS vs Windows 7 on Hyper-V RRS feed

  • Question

  • Hallo, I administrate Windows 2008 Server 64bit sp1 with Hyper-V. Ihe machines configuration is Xeon E3-1230@3,3Ghz, 16GB RAM, SataRAID and Intel 82574L NIC (configured as Virtual switch).

    Basicaly, I run two virtual machines there. One of them is CentOS 6.5 i386 minimal and the second one is Windows7 profesional. Both virtual machines use the same Hyper-V synthetic network adapter. When I compare network performance I can see that CentOS is slower, like really slower. CentOSs network transfer speed is about 30MBps in average while Windows7 reaches 100MBps. Doesnt matter service I use. Speed is more or less low.

    The test was performed ftom both machines as:
    1. I open a virtual pc machine and log in
    2. Then mounted a shared network drive from the host server
    3. Then I download a file from that mounted drive to vitual machine machine using MC (TC on Windows)
    Than I tested the other eay and tryed to download a file from shared folder to host server with similar resultes.

    CentOS is supposed to have LIS integrated out of the box and it is so. Updating to LIS3.5 does not make any diference for me. Also I experience the same problem on multiple host servers and multiple cent os installatios. Doesnt matter I use x64 vs i386 CentOS version.

    Here is configuration of my CentOS virtual machine:

    modinfo hv_vmbus
    filename:       /lib/modules/2.6.32-431.el6.i686/kernel/drivers/hv/hv_vmbus.ko
    version:        3.1
    license:        GPL
    srcversion:     3E7D7FE31577CC7E47EA89E
    alias:          acpi*:VMBus:*
    alias:          acpi*:VMBUS:*
    depends:        
    vermagic:       2.6.32-431.el6.i686 SMP mod_unload modversions 686 

    lshw -class network
      *-network
           description: Ethernet interface
           physical id: 1
           logical name: eth0
           serial: 00:15:5d:62:0d:02
           capabilities: ethernet physical
           configuration: broadcast=yes driver=hv_netvsc driverversion=3.1 firmware=N/A ip=192.168.99.220 link=yes multicast=yes

    ifconfig eth0
    eth0      Link encap:Ethernet  HWaddr 00:15:5D:62:0D:02  
              inet addr:192.168.99.220  Bcast:192.168.99.255  Mask:255.255.255.0
              inet6 addr: fe80::215:5dff:fe62:d02/64 Scope:Link
              UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
              RX packets:88825006 errors:0 dropped:0 overruns:0 frame:0
              TX packets:96179640 errors:0 dropped:0 overruns:0 carrier:0
              collisions:0 txqueuelen:1000 
              RX bytes:4095597990 (3.8 GiB)  TX bytes:3903571895 (3.6 GiB)


    I would really appriciate any suggestion anybody could give me. And want to stress that I am using synthetic NIC and simple updating LIS is not woring for me. Thank you really like much.
    • Moved by BrianEhMVP Monday, March 17, 2014 3:08 PM
    Saturday, March 15, 2014 4:53 PM

All replies

  • Hi ,

    I want to know if it is still slow with legacy NIC .

    BGDS

    Monday, March 17, 2014 4:27 AM
  • Hi vana-hb, Linux does have slower performance than Windows so this may not be entirely unexpected. Is it possible for you to sync up the network driver code to the upstream kernel bits from here:

    http://git.kernel.org/cgit/linux/kernel/git/next/linux-next.git/tree/drivers/net/hyperv

    The following changes can help you in improving network performance significantly but since these changes are not available as part of CentOS 6.5 you will have to compile them yourself:

    7 days hyperv: Change the receive buffer size for legacy hosts Haiyang Zhang 2 -1/+6
    7 days Drivers: net: hyperv: Enable large send offload KY Srinivasan 2 -4/+74
    7 days Drivers: net: hyperv: Enable send side checksum offload KY Srinivasan 2 -2/+77
    7 days Drivers: net: hyperv: Enable receive side IP checksum offload KY Srinivasan 3 -6/+50
    7 days Drivers: net: hyperv: Enable offloads on the host KY Srinivasan 2 -0/+135
    7 days Drivers: net: hyperv: Cleanup the send path KY Srinivasan 3 -90/+71
    7 days Drivers: net: hyperv: Enable scatter gather I/O

    Let me know if you are able to use the upstream bits.

    Thanks,

    Abhishek

    Monday, March 17, 2014 11:36 PM
  • Also, I noted that you are running Hyper-V 2008 SP1.  Is there any chance of trying with a newer version of Hyper-V -- at least the 2008 R2 version, but preferably the 2012 R2 version?   A lot of improvements have been made at the Hyper-V level since the original 2008 release.  And our work with Linux has focused on 2008 R2 and later; we have relatively little experience with Linux on the original 2008 release.

    Michael Kelley, Lead Program Manager, Open Source Technology Center

    Tuesday, March 18, 2014 3:49 PM
    Moderator
  • Thank you fot the suggestions.

    I run 2008 R2 version (just forgot to note it). There is not a simple swapping possible as it is company server and nobody would aprove to update the server jsut to run linux ... . Just for the chance I would like to install the same linux version on 2012 R2 evaluation which I just downloaded from technet. I ll post an update how itwent.

    The legacy driver doesnt solve the problem. O would say that the speed on legacy driver is about the same.

    And the last think ... I am pretty suprised that linux is supposed to be slowet than Windows system?? It is a bit suprice for me as the pblic opinion is that linux on server is a goog chooice. I try to update the drivers but it is a bit of hardcore for me ... i ll try.

    And pardon the spelling ... I can speak well, but not write.

    Tuesday, March 18, 2014 6:21 PM
  • Hi, Please note that the Linux virtual machine network performance is slower because of some specific features that were missing in Hyper-V and Hyper-V related Linux code. Now that the features are available, Linux virtual machine performance on Hyper-V should be comparable to Windows virtual machine performance on Hyper-V. Please let us know the results of your experiment.

    Thanks,

    Abhishek

    Wednesday, March 19, 2014 10:48 PM
  • The suggested kernel update is over my knowledge. I will dig in it as there is no other option, but it needs time.

    I did test something else thought. Today I have installed Windows Server 2012 R2 Standard Evaliation version on one desktop (something G840 fitted in 1155 socket). Than I installed CentOS 6.5 and Windows7pro (both 32bit). I mapped a network drive on Windows and mounted the same network drive on CentOS. Than I tried to copy a big file from that drive to the systems. On linux I used MC, on Windows TC.

    I did test it with sinthetic adapters and even try to mess with extra external adapter vs. xternal adapter shared by system. I got overall lower speed as the machine I was downloading from is not a star of the office.

    On Windows7 I got about 80MBps and on CentOS I got about 65MBps in average.

    So I did test many kinds of hardware, all kinds of software available and the result is that Linux hosted under Hyper-V not so good at all. Or is the town I live in a black spot??

    Thursday, April 3, 2014 6:12 PM
  • Hi ,

    If you have centOS 6.4 , you may try to install it and re-test the network performance .

    BGDS

    Friday, April 4, 2014 5:21 AM