Hello
rclone v1.55.1
- os/type: linux
- os/arch: amd64
- go/version: go1.16.3
- go/linking: static
- go/tags: none
With the following command for a google drive mount:
rclone mount data: /mnt/data --attr-timeout 168h --dir-cache-time 168h --poll-interval 3h --use-mmap --read-only --fast-list --vfs-cache-mode full --vfs-cache-max-size 1650G --vfs-cache-max-age 168h --vfs-read-chunk-size 8M --vfs-read-chunk-size-limit 8M --no-check-dest --no-checksum --no-traverse --log-file /var/log/rclone.log --log-level DEBUG --allow-other --umask 000
My objective is to read from cache whenever possible and remove any remote calls where possible. My use case doesn't need to be concerned about data being modified at the remote. However even with the above options, rclone still makes remote calls when reading a file or even reading the same chunk. For example after running the following command 10 times:
head -c 50 test.zip
Shows this in the log for the 10th execution:
2021/07/03 21:35:03 DEBUG : test.zip: Open: flags=OpenReadOnly
2021/07/03 21:35:03 DEBUG : test.zip: Open: flags=O_RDONLY
2021/07/03 21:35:03 DEBUG : test.zip: newRWFileHandle:
2021/07/03 21:35:03 DEBUG : test.zip: >newRWFileHandle: err=<nil>
2021/07/03 21:35:03 DEBUG : test.zip: >Open: fd=test.zip (rw), err=<nil>
2021/07/03 21:35:03 DEBUG : test.zip: >Open: fh=&{test.zip (rw)}, err=<nil>
2021/07/03 21:35:03 DEBUG : &{test.zip (rw)}: Read: len=16384, offset=0
2021/07/03 21:35:03 DEBUG : test.zip(0xc00bde8940): _readAt: size=16384, off=0
2021/07/03 21:35:03 DEBUG : test.zip(0xc00bde8940): openPending:
2021/07/03 21:35:03 DEBUG : test.zip: vfs cache: checking remote fingerprint "1365278274,2021-07-03 20:35:06.803 +0000 UTC,1641521f487bf2f3e91a1fc4b1e9849f" against cached fingerprint "1365278274,2021-07-03 20:35:06.803 +0000 UTC,1641521f487bf2f3e91a1fc4b1e9849f"
2021/07/03 21:35:03 DEBUG : test.zip: vfs cache: truncate to size=1365278274
2021/07/03 21:35:03 DEBUG : : Added virtual directory entry vAddFile: "test.zip"
2021/07/03 21:35:03 DEBUG : test.zip(0xc00bde8940): >openPending: err=<nil>
2021/07/03 21:35:03 DEBUG : vfs cache: looking for range={Pos:0 Size:16384} in [{Pos:0 Size:577536}] - present true
2021/07/03 21:35:03 DEBUG : test.zip: ChunkedReader.RangeSeek from -1 to 577536 length -1
2021/07/03 21:35:03 DEBUG : test.zip(0xc00bde8940): >_readAt: n=16384, err=<nil>
2021/07/03 21:35:03 DEBUG : &{test.zip (rw)}: >Read: read=16384, err=<nil>
2021/07/03 21:35:03 DEBUG : test.zip: ChunkedReader.Read at -1 length 4096 chunkOffset 577536 chunkSize 8388608
2021/07/03 21:35:03 DEBUG : test.zip: ChunkedReader.openRange at 577536 length 8388608
2021/07/03 21:35:03 DEBUG : &{test.zip (rw)}: Flush:
2021/07/03 21:35:03 DEBUG : test.zip(0xc00bde8940): RWFileHandle.Flush
2021/07/03 21:35:03 DEBUG : &{test.zip (rw)}: >Flush: err=<nil>
2021/07/03 21:35:03 DEBUG : &{test.zip (rw)}: Release:
2021/07/03 21:35:03 DEBUG : test.zip(0xc00bde8940): RWFileHandle.Release
2021/07/03 21:35:03 DEBUG : test.zip(0xc00bde8940): close:
2021/07/03 21:35:04 DEBUG : test.zip: vfs cache: setting modification time to 2021-07-03 20:35:06.803 +0000 UTC
2021/07/03 21:35:04 DEBUG : test.zip(0xc00bde8940): >close: err=<nil>
2021/07/03 21:35:04 DEBUG : &{test.zip (rw)}: >Release: err=<nil>
Each time there was network activity with rclone.
Can someone tell me if there's something I'm not doing right or is this rclone by design?
What part of the log entry, if any, explains what request rclone is performing or when it is doing a remote call? With the cache backend it's easy for me to spot (lack of technical skills) as it mentions warm/cold lookup.