Simon,

I'll try moving it over to a 100MB/s port in the morning, hopefully that will work.

Might have to upgrade our switch is that fixes it (it's due anyway, I just wanted to make sure the blame was pointing at it and not our new server).

I'll have a play with NDT as well, sounds very interesting.

Thanks again,

- Daniel

On 18 Jul 2010, at 12:50, Simon Leinen wrote:

I've been building an OpenSolaris (snv_134) based NAS

cool!

and I've spotted
something a bit odd with bi-directional iperf results
[...]
The NIC's in all servers are 1gb, but the linux
servers going into
100mb switch ports and the solaris machine goes into
a 1000mb port
(same switch).

This means that the switch has to buffer when transferring frames from the fast (Solaris) port to the slow (Linux) port. Many GigE switches, even those that aren't traditionally thought of as "low- end" (i.e. certain Cisco stackables), have very small packet buffers. So what might be happening here is that when the Solaris machine sends a few back-to-back packets over GigE, it might start to overrun the buffer in the switch. When multiple packets are dropped from a single window, that will affect TCP throughput pretty badly.

If my hypothesis is correct, then you should see much better performance when you limit the Solaris connection to 100Mb/s.

Looking at packet traces would shed more light on this, but it's tedious and I don't know any good tools to help diagnosing this kind of problems.

In some cases, the NDT (http://code.google.com/p/ndt) active measurement tool can be helpful. The server side only works on Linux with a special kernel patch (Web100), but the client can be compiled on Solaris, and run against one of the many public servers.
--
Simon.
--
This message posted from opensolaris.org
_______________________________________________
networking-discuss mailing list
networking-discuss@opensolaris.org

_______________________________________________
networking-discuss mailing list
networking-discuss@opensolaris.org

Reply via email to