[pnfs] Multiple tcp streams per mount point NFS patch
William A. (Andy) Adamson
andros at citi.umich.edu
Fri Mar 14 14:54:06 EDT 2008
I've ported (and tested) the experimental multiple rpc_xprt per rpc_clnt
patch forward to the latest pnfs kernel (2.6.24-pnfs). it's one large patch.
troy.citi.umich.edu:/vol/home/andros/pnfs-file-ibm/multiple_tcp/2.6.24-pnfs-client-multiple-rpc_xprt-per-rpc_clnt.patch
.
pnfs: is there interest in this experimental patch? should we have a
'performance testing' branch of the pnfs git tree where experimental code
such as this patch can be kept up to date?
the new feature is controlled by a new sysctl, which needs to be set while
the server is not mounted.
TEN% sysctl -a | grep sunrpc
sunrpc.rpc_debug = 0
sunrpc.nfs_debug = 0
sunrpc.nfsd_debug = 0
sunrpc.nlm_debug = 0
sunrpc.udp_slot_table_entries = 16
sunrpc.tcp_slot_table_entries = 16
sunrpc.min_resvport = 665
sunrpc.max_resvport = 1023
sunrpc.tcp_xprt_table_entries = 2
sunrpc.tcp_xprt_table_entries has a default value of 1. increasing it's
value increases the number of tcp streams from the client to all mounted
servers.
tcp_slot_table_entries are allocated in a round robin fashion, with a wait
queue if no slots are available. the new code chooses the next rpc_xprt
table, which represents a tcp connection from a unique port, at the same
time. e.g. once a slot is available, the same code chooses the next
rpc_xprt.
so the window size is now the number of
sunrpc.tcp_slot_table_entriesdivided by the number of
sunrpc.tcp_xprt_table_entries.
in the above sysctl output, there are 8
sunrpc.tcp_slot_table_entriesavailable to each tcp connection.
this gives the NFS client (v3/4/4.1) the same knob that FDT (
http://monalisa.cern.ch/FDT/ ) has on the client side, to manipulate the
number of tcp connections to the server.
-->Andy
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://linux-nfs.org/pipermail/pnfs/attachments/20080314/61aa5a2c/attachment-0001.htm
More information about the pNFS
mailing list