We've been trying to debug very slow transfer rates for remote clients hitting our web server (IIS on 2k12 R2).
The RTT to the client is about 150ms, and we're struggling to get more than about 500kbps out of our 100Mbps link. The client can speed-test download over 300MBit/s to a local speed test server, so we don't believe the problem is on the client end, but in the sending end.
Wireshark shows that the sender (IIS) is never sending more than about 3 packets without waiting for an ACK. The most bytes-in-flight we ever see is about 20KB. The receive window advertised by the client is about 256kB, so the sender simply is not filling the window.
We've tried a lot of things to fix this, including disabling all off-load options in the NIC settings, turning off heuristics etc etc. It's driving us nuts, as it means our server infrastructure is basically unusable for that purpose.
Router: C2911/K9 Servers: Dell R730s with broadcomm NICs running Hyper-V 2012 R2 hypervisors
We can see upload speed to local speed test servers saturate our link, but I believe only because the latency is very low. Wireshark timestamps show the sender is waiting for ACKs that it shouldn't be waiting for.
Surely IIS doesn't do serial blocking sends with small buffers or something?