diff options
author | Timo Savola <timo.savola@iki.fi> | 2017-10-14 17:36:36 +0300 |
---|---|---|
committer | Nikolaus Rath <Nikolaus@rath.org> | 2019-11-24 12:01:01 +0000 |
commit | 8822b60d9dbd9907065e7999f616b11ddce6d584 (patch) | |
tree | 25105ae29ec31475bb9a484389905aaf41e3922f /sshfs.rst | |
parent | 0f3ab4fd4f65412f2ee8d6a96b385e683edbfaea (diff) | |
download | sshfs-8822b60d9dbd9907065e7999f616b11ddce6d584.tar sshfs-8822b60d9dbd9907065e7999f616b11ddce6d584.tar.gz sshfs-8822b60d9dbd9907065e7999f616b11ddce6d584.tar.bz2 sshfs-8822b60d9dbd9907065e7999f616b11ddce6d584.zip |
Add support for using multiple connections
The -o max_conns=N option causes multiple SSH processes and response processing threads to
be created. This means that e.g. reading a large file no longer blocks all access to the
filesystem.
The connection is chosen by checking the per-connection statistics:
1. Choose connection with least outstanding requests; if it's a tie,
2. choose connection with least directory handles; if it's a tie,
3. choose connection with least file handles; if it's a tie,
4. choose connection which has already been established.
The implementation assumes that the max_conns values will be small; it
uses linear search.
Example benchmark:
With single connection:
$ sshfs -o max_conns=1,workaround=nobuflimit ebox: mnt
$ cat mnt/tmp/bigfile > /dev/null &
$ time find mnt > /dev/null
real 1m50.432s
user 0m0.133s
sys 0m0.467s
With multiple connections:
$ ~/in-progress/sshfs/build/sshfs -o max_conns=5,workaround=nobuflimit ebox: mnt
$ cat mnt/tmp/bigfile > /dev/null &
$ time find mnt > /dev/null
real 1m15.338s
user 0m0.142s
sys 0m0.491s
This feature was implemented to large extend by Timo Savola <timo.savola@iki.fi>. Thanks
to CEA.fr for sponsoring the remaining work to complete this feature and integrate it into
SSHFS!
Diffstat (limited to 'sshfs.rst')
-rw-r--r-- | sshfs.rst | 8 |
1 files changed, 8 insertions, 0 deletions
@@ -218,6 +218,14 @@ Options for example if the file size is not known in advance (before reading it). e.g. /proc filesystem +-o max_conns=N + sets the maximum number of simultaneous SSH connections + to use. Each connection is established with a separate SSH process. + The primary purpose of this feature is to improve the responsiveness of the + file system during large file transfers. When using more than once + connection, the *password_stdin* and *slave* options can not be + used, and the *buflimit* workaround is not supported/ + In addition, SSHFS accepts several options common to all FUSE file systems. These are described in the `mount.fuse` manpage (look for "general", "libfuse specific", and "high-level API" options). |