Poor network performance for clients in 100MB toGigabit environment

Adam McDougall mcdouga9 at egr.msu.edu
Wed Jul 2 05:10:09 UTC 2008


Are the NFS mounts UDP or TCP on Linux and FreeBSD?  I believe FreeBSD
still defaults to UDP which can act differently especially for NFS.

On Tue, Jul 01, 2008 at 05:30:35PM -0700, David Kwan wrote:

  I've attempt many standard and non-standard permutations of the tcp
  tuning parameters without much successful via sysctl.  It feels like
  FreeBSD is not handling the congestion very well and is beyond tuning
  sysctl.  It's just clients on the 100MB networks has slow/erratic reads;
  Clients on the Gigabit network are fine and screams, so the original tcp
  parameters are just fine for them.
  
  
  David K.
  
  
  -----Original Message-----
  From: owner-freebsd-net at freebsd.org
  [mailto:owner-freebsd-net at freebsd.org] On Behalf Of Paul
  Sent: Tuesday, July 01, 2008 1:21 PM
  To: David Kwan
  Cc: freebsd-net at freebsd.org
  Subject: Re: Poor network performance for clients in 100MB toGigabit
  environment
  
  What options do you have enabled on the linux server?
  sysctl -a | grep net.ipv4.tcp
  and on the bsd
  sysctl -a net.inet.tcp
  
  It sounds like a problem with BSD not handing the dropped data or ack 
  packets so what happens is it pushes a burst of
  data out > 100mbit and the switch drops the packets and then BSD waits 
  too long to recover and doesn't scale the transmission
  back.  TCP is supposed to scale down the transmission speed until 
  packets are not dropped to a point even without ECN.
  
  Options such as 'reno' and 'sack' etc. are congestion control algorithms
  
  that use congestion windows.
  
  
  David Kwan wrote:
  > I have a couple of questions regarding the TCP Stack:
  >
  >  
  >
  > I have a situation with clients on a 100MB network connecting to
  servers
  > on a Gigabit network where the client read speeds are very slow from
  the
  > FreeBSD server and fast from the Linux server; Write speeds from the
  > clients to both servers are fast.  (Clients on the gigabit network
  work
  > fine with blazing read and write speeds).  The network traces shows
  > congestion packets for both servers when doing reads from the clients
  > (dup acks and retransmissions), but the Linux server seem to handle
  the
  > congestion better. ECN is not enabled on the network and I don't see
  any
  > congestion windowing or clients window changing.  The 100MB/1G switch
  >
  > is dropping packets.   I double checked the network configuration and
  > also swapped swithports for the servers to use the others to make sure
  > the switch configuration are the same, and the Linux always does
  better
  > than FreeBSD.  Assuming that the network configuration is a constant
  for
  > all clients and servers (speed, duplex, and etc...), the only variable
  > is the servers themselves (Linux and FreeBSD).  I have tried a couple
  of
  > FreeBSD machines with 6.1 and 7.0 and they exhibit the same problem,
  > with no luck matching the speed and network utilization of Linux (2
  > years old).  The read speed test I'm referring is doing transferring
  of
  > a 100MB file (cifs, nfs, and ftp), and the Linux server does it
  > consistently in around 10 sec (line speed) with a constant network
  > utilization chart, while the FreeBSD servers are magnitudes slower
  with
  > erratic network utilization chart.  I've attempted to tweak some
  network
  > sysctl  options on the FreeBSD, and the only ones that helped were
  > disabling TSO and inflight; which leads me to think that the
  > inter-packet gap was slightly increased to partially relieve
  congestion
  > on the switch; not a long term solution.
  >
  >  
  >
  > My questions are: 
  >
  >   1. Have you heard of this problem before with 100MB clients to
  Gigabit
  > servers?
  >
  >   2. Are you aware of any Linux fix/patch in the TCP stack to better
  > handling congestion than FreeBSD?  I'm looking to address this issue
  in
  > the FreeBSD, but wondering if the Linux stack did something special
  that
  > can help with the FreeBSD performance.
  >
  >  
  >
  > David K.
  >
  >  
  >
  > _______________________________________________
  > freebsd-net at freebsd.org mailing list
  > http://lists.freebsd.org/mailman/listinfo/freebsd-net
  > To unsubscribe, send any mail to "freebsd-net-unsubscribe at freebsd.org"
  >
  >   
  
  _______________________________________________
  freebsd-net at freebsd.org mailing list
  http://lists.freebsd.org/mailman/listinfo/freebsd-net
  To unsubscribe, send any mail to "freebsd-net-unsubscribe at freebsd.org"
  _______________________________________________
  freebsd-net at freebsd.org mailing list
  http://lists.freebsd.org/mailman/listinfo/freebsd-net
  To unsubscribe, send any mail to "freebsd-net-unsubscribe at freebsd.org"
  


More information about the freebsd-net mailing list