[linux-cifs-client] cifs tuning and mount options

studdugie studdugie at gmail.com
Fri Apr 29 19:28:46 GMT 2005


The cifs client is a rapidly evolving entity and as such I sometimes
find it difficult to find documentation about the latest and greatest
features and options in cifs. For this reason I've recently joined
this mailing list so that my understanding of cif's capabilities are
moving at the same rate as its development but there are still blank
spots in my understanding, which I hope to fill by the responses to
this post.  I've been working on an application that does file level
replication between heterogeneous network peers, where heterogenous
means a mix of NFS and CIFS mounts and the NFS mounts are to Linux
boxes while the CIFS mounts are to Win03 boxes.

In general I'm interested in understanding what nobs and switches are
at my disposal for tuning cifs.
 
The replicator is using the cifs client found in kernel proper 2.6.10
and the mount.cifs binary released with samba 3.0.10. Is there a more
robust combination available?

Finally, I have some complaints.  One of the most important capability
of the replicator is it's ability to determine when a peer has failed
or is offline.  The criteria for this determination is whether the
exported filesystem is available for reading or writing. For NFS
(mounted via UDP) it's almost instantaneous. For CIFS, this isn't
possible. CIFS will hang indefinitely causing the thread(s) trying to
read from or right to the cifs mount to hang indefinitely. This
bug/feature is giving me heartburn and causing premature balding.  The
fact that cifs chokes  means the administrator cannot bring the
windows boxes on/offline as he wishes plus given enough time, all the
replica threads in the application will eventually lockup trying to
read/write from/to the cifs mount meaning, replication events come in
but none go out. I have to reboot the replicator box to untangle cifs,
which leads to complaint #2.  If enough  replication messages build up
for a failed peer, when the peer comes back on line the replicator
will assign up to eight replica threads (on 2-4 way boxes) to burn
through the replication messages. When this many threads hit the cifs
mount simultaneously cifs keels over. The usage pattern is simply
reading hundreds of files (1KB - 4MB) in succession, in parallel (up
to 8 files concurrently). Unfortunately, I can't reproduce the problem
right now because we've pushed ahead into production mode and I can't
blow the box up at will anymore. Next week I'm supposed to be adding
another peer to the cluster so I'll have more flexibility in terms of
blowing stuff up as the new node must go through a burn in period
before it's certified stable.

The bottom line is, I want to know all the options I can turn on and
off in cifs to tune it for my usage scenario and can the cif library
handle massive loads?

Dane


More information about the linux-cifs-client mailing list