What is the problem you are having with rclone?
Relatively slow read performance from S3 compared to known-to-be-multithreaded readers such as aws s3 cp
on the same host, and goofys
on linux. Have tried a lot of different configurations with vfs full and vfs off, can't seem to break 80MBps which is roughly a third of what aws s3 cp
gets with 10 threads and 10MB read sizes.
Have also tried providing ramdisk as VFS cache dir, as to reduce latency and possible ratelimiting of "local" disk (is EC2 instance and local drives are EBS volumes with burst capacity).
In watching network activity using Resource Monitor, am seeing multiple rclone threads at times but only one appears to doing any significant reading from AWS.
Am aware that multiple read threads are needed to get high bandwidth from S3, and have noticed that the --async-read
flag is listed as not supported for Windows.
Would be interested in helping add such support if this is the case, and the underlying WinFSP supports such.
What is your rclone version (output from rclone version
)
PS Z:> rclone --version
rclone v1.54.0
- os/arch: windows/amd64
- go version: go1.15.7
Which OS you are using and how many bits (eg Windows 7, 64 bit)
Windows Server 2016 64-bit
Which cloud storage system are you using? (eg Google Drive)
AWS S3
Compute is in same region
The command you were trying to run (eg rclone copy /tmp remote:tmp
)
Example vfs config, one of many tried:
mount foo:bar/baz S: --dir-cache-time 1000m --attr-timeout 1000m --no-checksum --no-modtime
--async-read --fast-list --buffer-size 2000M --vfs-cache-mode full --vfs-read-chunk-size 16M --vfs-read-chunk-size-limit 500M --vfs-read-ahead 500M --vfs-read-wait 5ms --vfs-cache-max-size 99000M --vfs-cache-max-age 30m --cache-dir Z:/rcloneCache2
Example non-vfs config:
mount foo:bar/\baz S: --dir-cache-time 1000m --attr-timeout 1000m --no-checksum --no-modtime --async-read --fast-list --vfs-cache-mode off --buffer-size 1G
The rclone config contents with secrets removed.
[foo]
type = s3
provider = AWS
env_auth = true
region = us-east-1
acl = private
A log from the command with the -vv
flag
Here's a snippet, can see my test app reading blocks of 80KB and ChunkedReader.read on 1MB length (seems to be consistent no matter what settings I try). No indication of threaded reads (but maybe such would happen inside ChunkedReader.read?
2021/02/11 21:32:19 DEBUG : /09DEC16101133-M2AS-200000269988_01_P001.TIF: >Read: n=81920
2021/02/11 21:32:19 DEBUG : /09DEC16101133-M2AS-200000269988_01_P001.TIF: Read: ofst=327680, fh=0x0
2021/02/11 21:32:19 DEBUG : 09DEC16101133-M2AS-200000269988_01_P001.TIF: ChunkedReader.Read at 1044480 length 1048576 chunkOf
fset 0 chunkSize 134217728
2021/02/11 21:32:19 DEBUG : /09DEC16101133-M2AS-200000269988_01_P001.TIF: >Read: n=81920
2021/02/11 21:32:19 DEBUG : /09DEC16101133-M2AS-200000269988_01_P001.TIF: Read: ofst=409600, fh=0x0
2021/02/11 21:32:19 DEBUG : /09DEC16101133-M2AS-200000269988_01_P001.TIF: >Read: n=81920
2021/02/11 21:32:19 DEBUG : /09DEC16101133-M2AS-200000269988_01_P001.TIF: Read: ofst=491520, fh=0x0
2021/02/11 21:32:19 DEBUG : /09DEC16101133-M2AS-200000269988_01_P001.TIF: >Read: n=81920
2021/02/11 21:32:19 DEBUG : /09DEC16101133-M2AS-200000269988_01_P001.TIF: Read: ofst=573440, fh=0x0
2021/02/11 21:32:19 DEBUG : /09DEC16101133-M2AS-200000269988_01_P001.TIF: >Read: n=81920
2021/02/11 21:32:19 DEBUG : 09DEC16101133-M2AS-200000269988_01_P001.TIF: ChunkedReader.Read at 2093056 length 1048576 chunkOf
fset 0 chunkSize 134217728
2021/02/11 21:32:19 DEBUG : /09DEC16101133-M2AS-200000269988_01_P001.TIF: Read: ofst=655360, fh=0x0
2021/02/11 21:32:19 DEBUG : /09DEC16101133-M2AS-200000269988_01_P001.TIF: >Read: n=81920
2021/02/11 21:32:19 DEBUG : /09DEC16101133-M2AS-200000269988_01_P001.TIF: Read: ofst=737280, fh=0x0
2021/02/11 21:32:19 DEBUG : 09DEC16101133-M2AS-200000269988_01_P001.TIF: ChunkedReader.Read at 3141632 length 1048576 chunkOf
fset 0 chunkSize 134217728
2021/02/11 21:32:19 DEBUG : /09DEC16101133-M2AS-200000269988_01_P001.TIF: >Read: n=81920
2021/02/11 21:32:19 DEBUG : 09DEC16101133-M2AS-200000269988_01_P001.TIF: ChunkedReader.Read at 4190208 length 1048576 chunkOf
fset 0 chunkSize 134217728
2021/02/11 21:32:19 DEBUG : /09DEC16101133-M2AS-200000269988_01_P001.TIF: Read: ofst=819200, fh=0x0
2021/02/11 21:32:19 DEBUG : /09DEC16101133-M2AS-200000269988_01_P001.TIF: >Read: n=81920
2021/02/11 21:32:19 DEBUG : /09DEC16101133-M2AS-200000269988_01_P001.TIF: Read: ofst=901120, fh=0x0
2021/02/11 21:32:19 DEBUG : 09DEC16101133-M2AS-200000269988_01_P001.TIF: ChunkedReader.Read at 5238784 length 1048576 chunkOf
fset 0 chunkSize 134217728
2021/02/11 21:32:19 DEBUG : /09DEC16101133-M2AS-200000269988_01_P001.TIF: >Read: n=81920
2021/02/11 21:32:19 DEBUG : /09DEC16101133-M2AS-200000269988_01_P001.TIF: Read: ofst=983040, fh=0x0
2021/02/11 21:32:19 DEBUG : /09DEC16101133-M2AS-200000269988_01_P001.TIF: >Read: n=81920
2021/02/11 21:32:19 DEBUG : 09DEC16101133-M2AS-200000269988_01_P001.TIF: ChunkedReader.Read at 6287360 length 1048576 chunkOf
fset 0 chunkSize 134217728
2021/02/11 21:32:19 DEBUG : /09DEC16101133-M2AS-200000269988_01_P001.TIF: Read: ofst=1064960, fh=0x0```