8

I have a HP Proliant ML350 G6 with two integrated Broadcom NetXTreme Gigabit Ethernet ports running Windows server 2016, updated as of today.

If I share a folder on my hyper v host I can add and remove files at around 90MB/s through the network (both ports deliver the exact same speed).

Here you can see the details on the host. enter image description here

The above picture is on the hyper V host. I have added Network 2 to the hyper v switch manager as Network 2.

Here you can see a picture of the Virtual switch manager and the network connection in the guest.

enter image description here

The problem is that when I share a folder from the guest to the network I can only access that folder att 10MB/s. That is, somewhere along the line my gigabit network is being choked down to a measly 100Mbit. I am not using a legacy connection.

It's not the disk, because on the guest I can shuffle files around between the harddrives at around 100MB/s. Picture below is the guest copying files from one drive to another.

enter image description here

So my question is. What must I change in order to get Gigabit speeds from the Hyper V guest to my network as I'm now only getting 100Mbit from the guest to the network.

In all places I've looked it says Gigabit and the host can deliver on it, so why can't the guest?

Edit: So to clarify: Any network PC can access the hyper V host network file shares at ~100MB/s. The host can read the guest network shares at ~100MB/s. If the same PCs that can access the host att 100MB/s try to access the guest they only get 10MB/s speed when accessing any of the hyper V Guests network shares. Why?

Edit 2: As per request here are more details. Red is the host operationg system. Green is inside the Hyper V machine. enter image description here

Another picture of the Guest network settings. enter image description here

JensB
  • 259
  • 1
  • 3
  • 15
  • Did you create a Generation 2 virtual machine? – Michael Hampton Jan 25 '18 at 19:30
  • Quiet sure of it. How can I confirm this? – JensB Jan 25 '18 at 20:32
  • Look at it in Hyper-V Manager? – Michael Hampton Jan 25 '18 at 20:42
  • The machine in question is generation 2. There is one gen 1 machine running a linux distro, then 3 other generation two machines. All with the same issue. – JensB Jan 25 '18 at 21:47
  • Are you testing using only file transfers? It might be interesting to test using something like iperf where no storage I/O is involved. – Zoredache Jan 25 '18 at 22:45
  • If you are getting "_90MB/s_," that equals 720 Mbps. Considering protocols overhead, etc., that is probably about right for 1000 Mbps *1 Gbps). – Ron Maupin Jan 25 '18 at 22:45
  • @RonMaupin The OP buried the actual problem in between the two screenshots. See the statement `I can only access that folder att 10MB/s.`. The '90MB/s' is the hyper-v host speed. – Zoredache Jan 25 '18 at 22:47
  • Is "Bandwidth Management" enabled in your Hyper-V VM's Network Adapter settings? – sippybear Jan 25 '18 at 23:34
  • 2
    Take a look at disabling TCP offloading features in the guests: https://support.rackspace.com/how-to/disabling-tcp-offloading-in-windows-server-2012/ – Appleoddity Jan 26 '18 at 06:57
  • @sippybear Bandwidth management is not enabled. – JensB Jan 26 '18 at 07:48
  • @Appleoddity upon further investigation this did not increase the speed of the clients connecting through the network to the VM. The hyper v host does however get 1000Mbit connection to the client and is moving data at 110MB/s. The host and the guest can communicate at this speed no matter the offloading or not. A remote compute moving files of the guest does still only get 11MB/s. And as noted before, the same client can download files from the hyper V host at 115 MB/s. – JensB Jan 26 '18 at 19:52
  • Then try to disable offloading on the host interfaces too. – Appleoddity Jan 27 '18 at 03:21
  • @Appleoddity I did. No difference. – JensB Jan 27 '18 at 07:20
  • I still have not been able to solve this issue. Is there any reason to suspect its the network card itself causing this? – JensB Mar 03 '18 at 11:11
  • 10MiB/s is nowhere near 100mbps. What about host/guest CPU usage with kernel time during coping files (SMB? What version) from the guest? – Michal Sokolowski Mar 04 '18 at 08:50
  • I'd like to see details window from "network 2 status" to make sure you have chosen right network adapter in Hyper-V configuration. – Michal Sokolowski Mar 04 '18 at 08:55
  • @MichalSokolowski Ive added two more screenshots, does that show what you need? – JensB Mar 06 '18 at 16:56
  • Check https://www.controlup.com/ – Itai Ganot Mar 06 '18 at 18:19
  • @JensB, looks okay. How about CPU usage (with kernel time) in host and guest during max throughput (problematic limited case)? – Michal Sokolowski Mar 06 '18 at 20:01
  • QoS at on on the NIC ? This make a huge impact. An example from my lab, a vconvert was running at 100mb on a 1gig NIC, removed and the full speed was achievable. The 100mb vs 1000mb remember me of my problem there – yagmoth555 Mar 06 '18 at 20:32
  • QoS is disabled. – JensB Mar 08 '18 at 20:43

4 Answers4

4

Verify that you're not using any of the "Legacy NICs" in your Virtual Machines? These are limited to 100mbps. This may be causing the Virtual Network (bound to the physical NIC) to negotiate the lower speed.

Other things to do: - Update NIC drivers - Force 1gbps operation in Device Manager - Replace the patch lead connecting the problem NIC - check cable. Two threads above had a similar problem solved by replacing a cable.

http://forums.whirlpool.net.au/archive/1853355

https://social.technet.microsoft.com/Forums/windowsserver/en-US/60f4924e-2390-4050-a948-7a149376026a/hyperv-host-1gbps-nic-negotiated-at-100-mbps-when-used-for-virtual-switch?forum=winserverhyperv

Mr. Raspberry
  • 3,878
  • 12
  • 32
  • 3
    This does not relate to the issue really, Im fully aware that a 1000Mbit can move data at around 100MB/s. This is not the problem. The problem is that Im getting 100Mbit connection to one of the clients hosted on a server that has Gigabit network speed, and when moving data to and from the server (and not the guest VM) I can achieve the 1000Mbit speed (moving at 110MB/s). – JensB Jan 26 '18 at 19:55
  • 1
    I am not using legacy network adapters, all the VMs that have this issue are Gen 2. The network adapter and O/S (win 2016) are all fully patched. And when looking in the guest VMs the link states it is 1.0 Gpbs. – JensB Mar 03 '18 at 11:29
  • 1
    *Force 1gbps operation in Device Manager* Disabling autonegoiation and forcing a fixed speed is a **bad** idea. [Autonegotiation is a requirement for gigabit ethernet](https://en.wikipedia.org/wiki/Gigabit_Ethernet#1000BASE-T): *Autonegotiation is a requirement for using 1000BASE-T according to Section 28D.5 Extensions required for Clause40 (1000BASE-T). At least the clock source has to be negotiated, as one endpoint must be master and the other endpoint must be slave.* – Andrew Henle Mar 06 '18 at 17:07
  • 1
    After removing the NICs from the device manager and reinstalling them with the same drivers the issue has been resolved. Before doing this I also replaced all cables along the way (but that alone did not fix the problem). So I dont really know what the problem was, but reinstalling fixed it. – JensB Mar 10 '18 at 16:28
0

I have encountered this problem several times. I suppose it has to do with a quite infamous bug in Broadcom NIC.

I have found essentially two solutions -

First solution - most likely be helpful

Change the properties of your physical nic and Hyper-v switch: disable VMQ : enter image description here

Disable all available "Offload options". TCP/UDP CHECKSUM OFFLASD and so on, all the options with "OFFLOAD" in it should be disabled. Try to disable the same "Offload" options in the guest systems.

Second solution

Download Broadcom drivers from your server manufactured (Dell, HP). follow this https://www.reddit.com/r/sysadmin/comments/2k7jn5/after_2_years_i_have_finally_solved_my_slow/

Stuggi
  • 3,366
  • 4
  • 17
  • 34
0

I checked the link status (Get-Netadapter | select interfaceDescription, Name, Linkspeed) on Powershell and found it running on 100Mbps. Changed the speed settings of the port on my network switch where the server is connected to from Auto and forced it to run on speed 1000. This solved my problem. Check if this helps.

0
  1. Run a synthetic network test to check the throughput (e.g. iperf).
  2. Check all links on the way from the server to the client. If there's only one link with 100 Mbit/s (possibly a faulty cable) the stream can't move faster.
  3. Check if there's an updated server NIC driver - the ones coming on the install DVD or through Windows Update may have issues.
Zac67
  • 8,639
  • 2
  • 10
  • 28
  • I don't think its the cable or the driver really. Network clients can access the host at 1000Mbit using the same network card and cable. – JensB Mar 03 '18 at 20:27