Server Fault is a question and answer site for system and network administrators. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

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

share|improve this question
What sort of servers? If the processor is slow enough you might be bottlenecking at the CPU. – ktower Feb 17 '10 at 23:06
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.

share|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.

share|improve this answer

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

share|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.

share|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.

share|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.

share|improve this answer

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.