What is the problem you are having with rclone?
We currently use ArcMap (ESRI ArcGIS) on Windows and need do some operations raster files. We use rclone mount to access those files stored on our Ceph S3 Storage cluster.
The problem is not the cluster or networking, because when simply copying from the mountpoint to local disk takes barely about 4 minutes. The folder we are working contains ~14000 files with a total size of ~27GB.
But when accessing files over mountpoint, it takes ages to run our ArcMap job.
Here some timings of running the same job:
- 1h30s when files stored locally on host
- 6m30s when files stored on a remote share over CIFS
- 45 minutes or more when using rclone mount
When looking the cache folder content, it's filling as expected and rclone logs show that files are found in cache. Our software tries to read files multiple times, but with a cache this should be very fast but that's not the case.
While digging more with Process Monitor from SysInternals, we see rclone using a fair amount of CPU time but this can be normal. But when doing thread monitoring, we see a lot of cycles spent on winfsp-x64.dll!FspFileSystemRemoveMountPoint+0xa0
Screenshot:
We know that this mount emulation layer has a cost, but with an effective cache the difference should be in single digit percent performance hit.
Any ideas? Bad parameters? RClone or WinFSP problem?
Thanks
What is your rclone version (output from rclone version
)
rclone v1.52.3
- os/arch: windows/amd64
- go version: go1.14.7
Which OS you are using and how many bits (eg Windows 7, 64 bit)
Windows Server 2019
Which cloud storage system are you using? (eg Google Drive)
S3 Compatible Storage - Ceph
The command you were trying to run (eg rclone copy /tmp remote:tmp
)
rclone mount PROJECT:poc v: --fuse-flag --VolumePrefix=\s3.domain.com\geoindex -vv --read-only --attr-timeout 15m --dir-cache-time 15m --cache-dir c:\rclone-cache --vfs-cache-mode full --vfs-cache-max-age 1h --vfs-cache-poll-interval 5m --vfs-cache-max-size 50g
The rclone config contents with secrets removed.
[PROJECT]
type = s3
provider = Ceph
env_auth = false
access_key_id = <REDACTED>
secret_access_key = <REDACTED>
endpoint = s3.domain.com
A log from the command with the -vv
flag
It ouputs a lot of logs, but can see that cache is working:
2020/08/28 13:57:40 DEBUG : /DATA/ulaval/Rasters/bdtq_20k/tif: >Getattr: errc=0
2020/08/28 13:57:40 DEBUG : /DATA/ulaval/Rasters/bdtq_20k/tif: Releasedir: fh=0x12
2020/08/28 13:57:40 DEBUG : /DATA/ulaval/Rasters/bdtq_20k/tif: >Releasedir: errc=0
2020/08/28 13:57:40 DEBUG : /DATA/ulaval/Rasters/bdtq_20k/tif/31h15202.PASS: Getattr: fh=0xFFFFFFFFFFFFFFFF
2020/08/28 13:57:40 DEBUG : /DATA/ulaval/Rasters/bdtq_20k/tif: Getattr: fh=0xFFFFFFFFFFFFFFFF
2020/08/28 13:57:40 DEBUG : /DATA/ulaval/Rasters/bdtq_20k/tif: Getattr: fh=0xFFFFFFFFFFFFFFFF
2020/08/28 13:57:40 DEBUG : DATA/ulaval/Rasters/bdtq_20k/tif/22a10101.tif.aux.xml(0xc001c92840): Opened existing cached copy with flags=O_RDONLY
2020/08/28 13:57:40 DEBUG : /DATA/ulaval/Rasters/bdtq_20k/tif/31h15202.PASS: >Getattr: errc=-2
2020/08/28 13:57:40 DEBUG : /DATA/ulaval/Rasters/bdtq_20k/tif/22a10101.tif.aux.xml: >Read: n=119
2020/08/28 13:57:40 DEBUG : /DATA/ulaval/Rasters/bdtq_20k/tif: >Getattr: errc=0
2020/08/28 13:57:40 DEBUG : /DATA/ulaval/Rasters/bdtq_20k/tif: >Getattr: errc=0
2020/08/28 13:57:40 DEBUG : /DATA/ulaval/Rasters/bdtq_20k/tif/HDR02.txt: Getattr: fh=0xFFFFFFFFFFFFFFFF
2020/08/28 13:57:40 DEBUG : /DATA/ulaval/Rasters/bdtq_20k/tif: Getattr: fh=0xFFFFFFFFFFFFFFFF
2020/08/28 13:57:40 DEBUG : /DATA/ulaval/Rasters/bdtq_20k/tif: Opendir:
2020/08/28 13:57:40 DEBUG : /DATA/ulaval/Rasters/bdtq_20k/tif: OpenFile: flags=O_RDONLY, perm=-rwxrwxrwx
2020/08/28 13:57:40 DEBUG : /DATA/ulaval/Rasters/bdtq_20k/tif/22a10101.tif.aux.xml: Flush: fh=0x4A
2020/08/28 13:57:40 DEBUG : DATA/ulaval/Rasters/bdtq_20k/tif/22a10101.tif.aux.xml(0xc001c92840): RWFileHandle.Flush ignoring flush on unwritten handle
2020/08/28 13:57:40 DEBUG : /DATA/ulaval/Rasters/bdtq_20k/tif/22a10101.tif.aux.xml: >Flush: errc=0
2020/08/28 13:57:40 DEBUG : /DATA/ulaval/Rasters/bdtq_20k/tif/22a10101.tif.aux.xml: Release: fh=0x4A
2020/08/28 13:57:40 DEBUG : DATA/ulaval/Rasters/bdtq_20k/tif/22a10101.tif.aux.xml(0xc001c92840): RWFileHandle.Release closing
2020/08/28 13:57:40 DEBUG : DATA/ulaval/Rasters/bdtq_20k/tif/22a10101.tif.aux.xml(0xc001c92840): close:
2020/08/28 13:57:40 DEBUG : /DATA/ulaval/Rasters/bdtq_20k/tif/22a10101.tif.ovr: Getattr: fh=0xFFFFFFFFFFFFFFFF
2020/08/28 13:57:40 DEBUG : /DATA/ulaval/Rasters/bdtq_20k/tif/22a10101.tif.ovr: >Getattr: errc=0
2020/08/28 13:57:40 DEBUG : DATA/ulaval/Rasters/bdtq_20k/tif/22a10101.tif.aux.xml(0xc001c92840): >close: err=<nil>
2020/08/28 13:57:40 DEBUG : /DATA/ulaval/Rasters/bdtq_20k/tif/22a10101.tif.aux.xml: >Release: errc=0
2020/08/28 13:57:40 DEBUG : /DATA/ulaval/Rasters/bdtq_20k/tif: >OpenFile: fd=DATA/ulaval/Rasters/bdtq_20k/tif/ (r), err=<nil>
2020/08/28 13:57:40 DEBUG : /DATA/ulaval/Rasters/bdtq_20k/tif: >Opendir: errc=0, fh=0x12
2020/08/28 13:57:40 DEBUG : /DATA/ulaval/Rasters/bdtq_20k/tif: >Getattr: errc=0
2020/08/28 13:57:40 DEBUG : /DATA/ulaval/Rasters/bdtq_20k/tif/HDR02.txt: >Getattr: errc=-2
2020/08/28 13:57:40 DEBUG : /DATA/ulaval/Rasters/bdtq_20k/tif/22a10101.tif.ovr: Getattr: fh=0xFFFFFFFFFFFFFFFF
2020/08/28 13:57:40 DEBUG : /DATA/ulaval/Rasters/bdtq_20k/tif: Opendir:
2020/08/28 13:57:40 DEBUG : /DATA/ulaval/Rasters/bdtq_20k/tif: OpenFile: flags=O_RDONLY, perm=-rwxrwxrwx
2020/08/28 13:57:40 DEBUG : /DATA/ulaval/Rasters/bdtq_20k/tif: >OpenFile: fd=DATA/ulaval/Rasters/bdtq_20k/tif/ (r), err=<nil>
2020/08/28 13:57:40 DEBUG : /DATA/ulaval/Rasters/bdtq_20k/tif: >Opendir: errc=0, fh=0x4A
2020/08/28 13:57:40 DEBUG : /DATA/ulaval/Rasters/bdtq_20k/tif/21l16101.tfw: Getattr: fh=0xFFFFFFFFFFFFFFFF
2020/08/28 13:57:40 DEBUG : /DATA/ulaval/Rasters/bdtq_20k/tif/22a10101.tif.ovr: >Getattr: errc=0