mirror of
https://github.com/rclone/rclone.git
synced 2025-02-04 12:39:35 +01:00
mount, cmount: set --attr-timeout default to 1s - fixes #2157
This works around these 3 problems: * rclone using too much memory #2157 * rclone not serving files to samba * https://forum.rclone.org/t/rclone-1-39-vs-1-40-mount-issue/5112 * excessive time listing directories #2095
This commit is contained in:
parent
7e80e609e8
commit
98a924602f
@ -28,7 +28,7 @@ var (
|
|||||||
MaxReadAhead fs.SizeSuffix = 128 * 1024
|
MaxReadAhead fs.SizeSuffix = 128 * 1024
|
||||||
ExtraOptions []string
|
ExtraOptions []string
|
||||||
ExtraFlags []string
|
ExtraFlags []string
|
||||||
AttrTimeout = 0 * time.Second // how long the kernel caches attribute for
|
AttrTimeout = 1 * time.Second // how long the kernel caches attribute for
|
||||||
)
|
)
|
||||||
|
|
||||||
// Check is folder is empty
|
// Check is folder is empty
|
||||||
@ -150,12 +150,30 @@ for solutions to make ` + commandName + ` mount more reliable.
|
|||||||
You can use the flag --attr-timeout to set the time the kernel caches
|
You can use the flag --attr-timeout to set the time the kernel caches
|
||||||
the attributes (size, modification time etc) for directory entries.
|
the attributes (size, modification time etc) for directory entries.
|
||||||
|
|
||||||
The default is 0s - no caching - which is recommended for filesystems
|
The default is "1s" which caches files just long enough to avoid
|
||||||
which can change outside the control of the kernel.
|
too many callbacks to rclone from the kernel.
|
||||||
|
|
||||||
If you set it higher ('1s' or '1m' say) then the kernel will call back
|
In theory 0s should be the correct value for filesystems which can
|
||||||
to rclone less often making it more efficient, however there may be
|
change outside the control of the kernel. However this causes quite a
|
||||||
strange effects when files change on the remote.
|
few problems such as
|
||||||
|
[rclone using too much memory](https://github.com/ncw/rclone/issues/2157),
|
||||||
|
[rclone not serving files to samba](https://forum.rclone.org/t/rclone-1-39-vs-1-40-mount-issue/5112)
|
||||||
|
and [excessive time listing directories](https://github.com/ncw/rclone/issues/2095#issuecomment-371141147).
|
||||||
|
|
||||||
|
The kernel can cache the info about a file for the time given by
|
||||||
|
"--attr-timeout". You may see corruption if the remote file changes
|
||||||
|
length during this window. It will show up as either a truncated file
|
||||||
|
or a file with garbage on the end. With "--attr-timeout 1s" this is
|
||||||
|
very unlikely but not impossible. The higher you set "--attr-timeout"
|
||||||
|
the more likely it is. The default setting of "1s" is the lowest
|
||||||
|
setting which mitigates the problems above.
|
||||||
|
|
||||||
|
If you set it higher ('10s' or '1m' say) then the kernel will call
|
||||||
|
back to rclone less often making it more efficient, however there is
|
||||||
|
more chance of the corruption issue above.
|
||||||
|
|
||||||
|
If files don't change on the remote outside of the control of rclone
|
||||||
|
then there is no chance of corruption.
|
||||||
|
|
||||||
This is the same as setting the attr_timeout option in mount.fuse.
|
This is the same as setting the attr_timeout option in mount.fuse.
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user