rclone/vfs
Nick Craig-Wood 2adc057d95 vfs: fix very high load caused by slow directory listings
In this commit (released in v1.52.0)

6ca7198f mount: fix disappearing cwd problem

SetSys was introduced to cache node lookups.

Unfortunately taking the vfs.(*Dir) lock in SetSys causes any FUSE
operations on a directory to pile up behind slow directory listings.

In some situations this leads to very high load.

This commit fixes it by using atomic operations to read and write the
Sys value make it independent of the lock.

See: https://forum.rclone.org/t/high-cpu-load-with-rclone-mount/17604
See: #4104
2020-07-15 16:22:12 +01:00
..
test_vfs lib/random: unify random string generation into random.String 2019-08-06 12:44:08 +01:00
vfscache vfs cache: make logging consistent and remove some debug logging 2020-07-06 17:32:53 +01:00
vfscommon vfs: add --vfs-writeback option to delay writes back to cloud storage 2020-06-30 12:01:36 +01:00
vfsflags vfs: restart pending uploads on restart of the cache 2020-06-30 12:01:36 +01:00
vfstest vfs: remove workaround Sleep() calls from tests 2020-06-30 12:03:39 +01:00
dir_handle_test.go vfs: add --vfs-writeback option to delay writes back to cloud storage 2020-06-30 12:01:36 +01:00
dir_handle.go vfs: factor duplicated Open code into vfs from mount/cmount 2017-11-03 13:00:00 +00:00
dir_test.go vfs: make dir.ForgetAll and friends not forget virtual entries 2020-06-30 12:03:39 +01:00
dir.go vfs: fix very high load caused by slow directory listings 2020-07-15 16:22:12 +01:00
errors_test.go vfs: add tests and subsequent fixes 2017-11-04 10:24:10 +00:00
errors.go build: drop support for go1.8 2019-04-15 21:49:58 +01:00
file_test.go vfs: add --vfs-writeback option to delay writes back to cloud storage 2020-06-30 12:01:36 +01:00
file.go vfs: fix very high load caused by slow directory listings 2020-07-15 16:22:12 +01:00
help.go vfs: update VFS help 2020-06-30 12:03:39 +01:00
make_open_tests.go vfs: bring DO NOT EDIT comments in line with "go help generate" 2020-04-30 12:24:44 +01:00
open_test.go vfs: bring DO NOT EDIT comments in line with "go help generate" 2020-04-30 12:24:44 +01:00
rc_test.go vfs: add an optional fs parameter to vfs rc methods 2020-06-30 12:01:36 +01:00
rc.go vfs: add an optional fs parameter to vfs rc methods 2020-06-30 12:01:36 +01:00
read_test.go vfs: add --vfs-writeback option to delay writes back to cloud storage 2020-06-30 12:01:36 +01:00
read_write_test.go vfs: Make tests run reliably 2020-06-30 12:01:36 +01:00
read_write.go vfs: allow ReadAt and WriteAt to run concurrently with themselves 2020-06-30 12:01:36 +01:00
read.go doc: fix typos throughout docs and code 2020-05-20 15:54:51 +01:00
vfs_case_test.go vfs: add --vfs-writeback option to delay writes back to cloud storage 2020-06-30 12:01:36 +01:00
vfs_test.go vfs: re-use existing VFS if possible 2020-06-30 12:01:36 +01:00
vfs.go vfs: Add recovered items on cache reload to directory listings 2020-06-30 12:03:39 +01:00
vfstest_test.go vfstests: move functional tests from mountlib and make them work with VFS 2020-04-20 10:42:33 +01:00
vstate_string.go vfs: stop virtual directory entries dropping out of the directory cache 2020-06-30 12:03:39 +01:00
write_test.go vfs: add --vfs-writeback option to delay writes back to cloud storage 2020-06-30 12:01:36 +01:00
write.go vfs: implement partial reads in --vfs-cache-mode full 2020-06-30 12:01:36 +01:00