OpenSolaris

Printable Version Enter a New Search
Bug ID 6216670
Synopsis NFS server needs a bigger transmit buffer
State 10-Fix Delivered (Fix available in build)
Category:Subcategory kernel:rpc
Keywords krpc | perf
Responsible Engineer Dai Ngo
Reported Against snv_01
Duplicate Of
Introduced In solaris_2.5
Commit to Fix snv_119
Fixed In snv_119
Release Fixed solaris_nevada(snv_119)
Related Bugs 4953763
Submit Date 12-January-2005
Last Update Date 17-July-2009
Description
There is a performance throttling code in mir_wput() associated
with the mir_hold_inbound field. When RPC is flow-controled downstream
it will hold incoming request until the flow opens up. With gigabit
networking and current tcp default parameters we observe a 20% 
degradation to simple NFS throughput experiments described here:

	http://www-icnc.france/~rbourbon/HERMES/Report_sinkfs.txt

(also in attachment)

David  Robinson notes that 

  "the purpose of the RPC output throttling the input,
  it is done solely to prevent a bad client from issuing too
  many read requests without consuming the replies and
  exhausting the server's kernel memory."

 xxxxx@xxxxx.com 2005-1-12 15:41:09 GMT
Work Around
	 ndd -set /dev/tcp tcp_xmit_hiwat 2097152
	 ndd -set /dev/tcp tcp_xmit_lowat 1048576

This insure that the request would only be held once 2G
are in the xmit queue, and would be release when the xmit
queue drops below 1G. This leaves NFS plenty of time to form
response before the xmit queue fully drains.



 xxxxx@xxxxx.com 2005-1-12 15:41:10 GMT
Comments
N/A