I've been doing some tests with iperf to measure the network throughput between 2 servers (connected back-to-back thru a crossover cable) and I only see 180 to 200 Mbps. I tried different cables and they're all CAT6. As you may know, iperf generates packets on the fly so disk I/O is not involved here...

The two servers are running plain-vanilla Windows 2003 with the correct and latest network driver for the NICs. I know there's some protocol overhead involved but I don't expect this to take more than 20% of the bandwidth.

Is it realistic to aim for 80% utilization? That is, to get around 800Mbps on a 1Gb link? Have you actually seen this on Windows?

Thanks, JFA

  • What sort of servers? If the processor is slow enough you might be bottlenecking at the CPU. – ktower Feb 17 '10 at 23:06
  • 1
    Also what sort of network cards are involved? – 3dinfluence Feb 17 '10 at 23:31

I've seen sustained 950Mbps to a large Oracle DB on an iSCSI HBA under heavy load, but rarely above 500/600 Mbps for normal I/O on regular NICs. 300 Mbps is a more normal top speed of the day on my network though. YMMV.

| improve this answer | |
  • Seems about right to me. – Antoine Benkemoun Feb 17 '10 at 23:29
  • If anything, 300 for a given connection is higher than average. – mpez0 Feb 18 '10 at 14:07

Turn on jumbo frames.

| improve this answer | |

It doesn't answer your question but THIS is a great article from tomshardware.com that goes into detail about just how hard it can be for get into the 80%+ utilisation regions with GigE.

| improve this answer | |

I get that sort of performance on my hardware, but it's not the normal traffic. When I copy files between servers it gets sustained transfers however, I am not running server 2003. 2008 has a much better networking stack see the referenced whitepapaer for details on how to implement. Enabling jumbo frames wouldn't hurt either.

| improve this answer | |

Try checking to see if you are getting any Ethernet errors using netstat while running your test:

netstat -e

You'll get output that looks like this:

Interface Statistics

                                Received            Sent

Bytes                         1297481476      1525340409
Unicast packets                615329630       429473493
Non-unicast packets               809612           72735
Discards                               0               0
Errors                                 0               0
Unknown protocols                  44579

If you are getting a lot of Errors, you should try to track those down.

It may be verboten here, but try setting both cards to Full Duplex and see if you get a speed boost, or a reduction in errors.

You can also try netstat -e -S to get per protocol statistics (and errors) while running your test. It could be that your test utility is generating packets that are registering as problematic by Windows.

| improve this answer | |

It is important to note that these rates are, and always have been, based on a continuous transfer of the largest possible packet. On the original Ethernet the claim was 10Mbps, but that was only true if every packet was 1500+ bytes long.

| improve this answer | |

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy