> 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

Reply via email to