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, 2010 at 23:06
  • 1
    Also what sort of network cards are involved? Feb 17, 2010 at 23:31

6 Answers 6


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.

  • Seems about right to me. Feb 17, 2010 at 23:29
  • If anything, 300 for a given connection is higher than average.
    – mpez0
    Feb 18, 2010 at 14:07

Turn on jumbo frames.


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.


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.


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.


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.

Your Answer

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