Take the 2-minute tour ×
Server Fault is a question and answer site for professional system and network administrators. It's 100% free, no registration required.

I've got two windows PCs connected by gigabit ethernet.

When I use iperf to measure throughput it maxes out at a good 100MBit/s.

When I run iperf using two or three parallel connections, each will get the full 100MBit/s, too.

If I add all the parallel connections there should be a maximum speed of nearly 400MBit/s possible, so I gather that the 100MBit/s per connection is some kind of throttling.

I need maximum speed between these two computers, is there any way to disable this throttling so the full throughput can be used by one single connection instead of being shared between more of them?

share|improve this question
    
Please tell us more about how these machines are linked together. –  Zoredache Sep 14 '11 at 20:09
    
The figure 100MBit/s rings alarms bells for me. Going back to basics, what link speed have the nics negotiated at/been configured to? Are they plugged into a gig capable switch? –  paulos Sep 14 '11 at 20:47
    
How are you testing the speed? I'm thinking TCP connections are your limiter. If you add more interfaces, you get more TCP connections. –  Alo Sep 14 '11 at 21:07
    
I used iperf -s and iperf -P x -c <host> to measure. –  Sam Sep 15 '11 at 5:40

3 Answers 3

up vote 1 down vote accepted

By default, iperf uses a TCP connection. It may be backing down on rate due to TCP's congestion control or a window size issue; try a UDP test (-u).

Also, check on the CPU usage - its generation of data may be saturating a core when there's a single process, while 4 processes can utilize 4 cores.

share|improve this answer

Gigabit ethernet does not do any throttling in the way that you are surmising. There are many factors that might limit the speed you are able to run iPerf at, including the type of test you are running (TCP or UDP, Window size, packet size, etc. see the iPerf manual for details), the resources available on the testing hosts (e.g. if you are limited by your CPU, a single test might consume a core, while parallel tests use additional cores), and the type of switch(es) you are connected to. Additionally, there may be intermediary devices that ARE throttling you in some way, but that is a policy configuration, not a feature of gigabit ethernet (e.g. are the two hosts under test directly connected via a single switch, or are there firewalls, routers, or other devices in between them?).

share|improve this answer

If I add all the parallel connections there should be a maximum speed of nearly 400MBit/s possible,

You haven't mentioned how you are adding these connections together, but I assume you are talking about Channel bonding or Link aggregation. If that is what you plan on using, then please understand that the bandwidth is not cumulative. What you actually get is more like load balancing, some connections go over one interface, some go over the other interfaces.

Bonding typically will select the interface based on some details about the hardware address of the destination, or some aspect of the network protocol in use. The point being that for a single connection will be limited to a single interface, it will not use the combined bandwidth of all interfaces.

share|improve this answer

Your Answer

 
discard

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

Not the answer you're looking for? Browse other questions tagged or ask your own question.