Status about using Rclone for music storage / playback in 2021. Access times improved?

and, is it normal then that I'm getting such a behavior when browsing my vfsMeta directory ?
as you can see, I can open any folder in there, and all of them are empty. Should I not see the names of my actual files?

You didn't click on the link I shared and read it.

--vfs-cache-mode full
In this mode all reads and writes are buffered to and from disk. When data is read from the remote this is buffered to disk as well.

In this mode the files in the cache will be sparse files and rclone will keep track of which bits of the files it has downloaded.

So if an application only reads the starts of each file, then rclone will only buffer the start of the file. These files will appear to be their full size in the cache, but they will be sparse files with only the data that has been downloaded present in them.

This mode should support all normal file system operations and is otherwise identical to --vfs-cache-mode writes.

When reading a file rclone will read --buffer-size plus --vfs-read-ahead bytes ahead. The --buffer-size is buffered in memory whereas the --vfs-read-ahead is buffered on disk.

When using this mode it is recommended that --buffer-size is not set too large and --vfs-read-ahead is set large if required.

IMPORTANT not all file systems support sparse files. In particular FAT/exFAT do not. Rclone will perform very badly if the cache directory is on a filesystem which doesn't support sparse files and it will log an ERROR message if one is detected.

One thing I'd like to point out is that with a writeable mount you do not want to use --no-checksum and --poll-interval 0. Otherwise checksums will never get compared and the mount won't update on file changes. I use those with my read-only mount, because nothing ever changes within that mount itself. Does that make sense?

It actually does. No poll interval = rclone not checking for changes.

here is my current script content :

rclone mount --attr-timeout 5000h --dir-cache-time 5000h --drive-pacer-burst 200 --drive-pacer-min-sleep 10ms --rc --vfs-cache-mode full --vfs-read-chunk-size 1M --vfs-read-chunk-size-limit off --vfs-cache-max-size 500G --vfs-cache-max-age 5000h --cache-dir F:/cache/ gcrypted:music_library/ X:
timeout /t 60 /nobreak
rclone rc vfs/refresh recursive=true --drive-pacer-burst 200 --drive-pacer-min-sleep 10ms --timeout 30m --user-agent

Roon is still scanning files while I write these lines. I have no clue if the newly added vfs/refresh line I added will improve things. I'll keep you posted!

Hi gents,

I wanted to comment on this after enabling this vfs/resfresh thing for a weeks or two.

I noticed that since I activated it, I indeed DO have files listed in my cache directory, under the "vfsMeta" folder, that previously was existing, but only listed the folders, and not the files.

Everything is indeed way faster now.

In short, I would recommend using vfs/refresh to anyone willing to handle and list a lot of small files on their mounted gdrive.

Thanks again for your help on this @VBB and @Animosity022 !

2 Likes

Guys, I have one extra question and I can't figure it out on my end.

Why is the vfs/refresh erasing everything at server reboot ?

I explain myself :

-> once refresh command is run, and when files are "scanned" I can clearly see in e:/cache/vfsMeta/Folders/FILES

-> once the computer gets restarted for any reason, I end up only keeping e:/cache/vfsMeta/Folders

= the file list is gone, but the folder list remains.

Is there any way to make the file list permanent ? I have a fixed folder content (and I only do update a monthly folder, then add a new one, etc. So can I tell rclone to keep the file cache of all folders, except the last monthly folder, permanent ? This would save me a LOT of time when Roon is rescanning stuff.

Another option would be to tell rclone to scan for all the files all alone, without the need of an external app (Eg: Roon in my setup) to request for them to be listed.

Any great idea ?

Thanks again ! :slight_smile:

hi,

the rclone vfs dir cache is not persistent across reboots.

run rclone rc vfs/refresh as a task on reboot
and/or
run rclone rc vfs/refresh on demand, before having roon do its scan.

maybe @VBB can comment?

1 Like

I do this refresh once a day, right before I run a Plex scan. Otherwise the dir cache (not to be confused with an actual Rclone cache) would be stale.

Since I don't use the real cache, I don't know exactly how it behaves, but I would think whatever is cached in there (files and folders) would survive a reboot, no?

hi,

the real vfs cache does survive reboots.

as i learnt from you, i no longer use vfs cache when streaming media with emby.
but then, we both have very good internet connections.

Right, but what @silkyclouds is saying here sounds like his actual cache is not retaining the files after a reboot.

-> once refresh command is run, and when files are "scanned" I can clearly see in e:/cache/vfsMeta/Folders/FILES

-> once the computer gets restarted for any reason, I end up only keeping e:/cache/vfsMeta/Folders

= the file list is gone, but the folder list remains.

We know that the dir cache (the one that the refresh command affects) only exists in memory.

hmm, too two many caches. jojo no know understand, need --magic

tl;dr, the OP needs to run a test, reproduce the problem and post the debug logs to prove it.

the OP seems to be using multiple locations for the vfs cache, perhaps he/she/it is getting confused, like jojo?
--cache-dir F:/cache and e:/cache or perhaps that is a simple typo

the actual/real vfs cache can survive between each execution of rclone mount, a reboot should not change that.

keep in mind that files, once read from but no longer accessed, will stay in the vfs cache for a period of time defined by
--vfs-cache-max-age duration Max age of objects in the cache (default 1h0m0s)

this can be seen in the debug log.
let's say i start a rclone mount, watch a media file, kill the mount, restart the mount, that media file will still be in the vfs cache.
at the start of the mount and once per time period defined by
--vfs-cache-poll-interval duration Interval to poll the cache for stale objects (default 1m0s)
rclone will scan for and prune out stale files.

DEBUG : vfs cache RemoveNotInUse (maxAge=3600000000000, emptyOnly=false): item folder/file.mkv not removed, freed 0 bytes

1 Like

Hi,

let me clarify things. You speak about the actual file cache. The files that gets downloaded, and end up on a local drive.

regarding E: and F/, it indeed is a typo :wink:

now lets dig this.

Files gets downloaded locally, and are cached in e:/cache/vfs
there, you can list the files that were read by Roon, and only the needed chunks are stored on the local drive.

there is one other thing (please read above posts) which is launched in the same batch file as the actual rclone mount. It is this command :

rclone rc vfs/refresh recursive=true --drive-pacer-burst 200 --drive-pacer-min-sleep 10ms --timeout 30m --user-agent

This command seems to store the file listing, creating file list under e:/cache/vfsMeta/

the "files" inside e:/cache/vfsMeta/ are empty, and connot be read. They are there ONLY to allow a faster listing (and in my setup, scanning) of the files by the apps that calls them.

What I am saying, is that the file structure which is "cached" by the second command I listed here (this is totally independent from the rclone mount, vfs cache, cache max timeout etc.) disapears once my computer reboots.

As you guys introduced me to vfs/refresh, I was hoping you could share its behavior after a reboot. And yes, @VBB , I am also running this at startup, as I simply added the vfs/refresh command right after the mount, in the same batch file. :wink:

Thanks !

No, it doesn't. That command is only for dir-cache and that's in memory.

That's not rclone doing it as it's persistent on reboots. You'd want to generate a log file and reproduce the issue and you can see it's not rclone doing it.

that is not correct and i understand the confusion.

to be clear, there are two caches.

each cache has:
a. different purpose
b. different data
c. different storage
d. different levels of volatility


  1. dir-cache
    a. to speed the listing of folder/file names from slow cloud based storage.
    b. a list of folder/file names.
    c. stored in memory.
    d. does not survive a reboot.

  2. vfs-cache
    a. to store the contents of files read from slow cloud storage. suffice explanation for now.
    b. the contents of files.
    c. stored in local storage, in your case e:/cache.
    d. does survive a reboot.

2 Likes
Rclone just RAM caching
Tweaks/Flags/Options For Faster Remote Browsing
Any docs for union?
Rclone cache uploading
Understanding Rclone Mount Download From Remote
Cannot read and create files on Telebox (Linkbox)
Rclone dir cache remains when mount drops
Using dedupe on an encrypted folder
Rclone mount behavior about large amount of files
Rclone mount can't read files from dir with a very large number of files and dirs
Issues rclone mount Mac Sequoia
Difference between “rclone mount” and ”rclone copy”
Rclone mount of Google Drive - aggresive rate limiting by Google
Does rclone mount flush writes on exit?
Files dont appear when uploading
Idrive e2 windows mount - no free space
Mount with slow performance on selfhosted Garage Instance
Need advice on rclone usage for decompressing images over network
VFS cache slow to split chunks
By default where does rclone cache to?
I need a set of flags that captures changes quickly and yields low latency for an rclone mount
File missing from mount visible with rclone ls
Beginner question
Rclone moun not downloading everything per default?
Backblaze B2 mount with Rclone generating Class C transcactions
Problem updating file cache by rclone mount
Is there any way to temporarily store the metadata for files?
Google Drive - Any way to copy files fast, sync slowly?
Fully read ahead a mounted gdrive folder
Sync one source to multiple host
[Jottacloud] Configuration Feedback
Rclone Mount + Google drive + Library scan
Out of memory: error killed process
Using rclone as local cache to reduce HDD spin-up time and power consumption
Huge memory usage (>10GB) when upload a single large file (16GB) in WebDAV
Rclone with Proton Drive is very slow
Rclone mount only syncs one way
Best practices and setting for mounting gdrive and s3 services for streaming with plex
Load the whole file tree of a just-mounted remote
Slow load times on ISO files Google drive
Using Bisync with Dropbox while someone adds a file into a watched folder causes a critical error and a resync to be needed. Is this an expected behavior?
How to refresh --dir-cache-time without --rc
Mount on MacOS unbearably slow
VFS Cache file-names/folders/metadata
SLOWNESS - BackBlaze B2 and Windows PCs
SLOWNESS - BackBlaze B2 and Windows PCs
AWS S3 Mount Hanging/Crashing
VFS Cache manual options?
Speeding up directory tree navigation on a mounted network drive
Google Work Space + Plex +RClone Mount settings
Union on Windows Slow start times
Accessing file metadata via Rclone Mount is extremely slow (both Windows Explorer and PowerShell)
Dropbox Help From Scratch
Asus rt-ac85p openwrt router & rclone
Moving from Cache to VFS - Plex Streaming Recommended Settings
Rclone mount - google drive - optimal settings for local file search / grep
Vfs cache performance problems
Best practice vfs mount options for nextcloud webdav mount?
Best practice vfs mount options for nextcloud webdav mount?
Optimization of rclone mount for azureblob read-only random-seek of large files
Corrupt reads and difficulty saturating multi-gigabit links
SSHFS VFS cache failing to flush

How is your file structure ?

If you want to speed up things, for optimal filesystem and listing performance I usually do not have than more 30 files/subfolders in each folder.

You could try something like this for music:

/YEAR(OF RELEASE)/MONTH/DAY/

If that's still not enough (if you are as extreme as me) just use random numbers /XX/XX/XX/XX as much you need to keep each folder with a maximum of 30 objects in it.

You may think it doesn't but this make massive. I have one folder like this with 5k objects and it takes rclone ls fast list 3.4s to list it all, while in 5s of another folder not like this it can't list A SINGLE object in 5s!

I indeed do create a file structure based on monthly folders, and 30/31 daily folders inside the monthly folder. Your observation is correct. And I was already using this folder convention method :wink:

wait, it means I should mount my rclone using both vfs cache AND dir cache ?

and what is the vfs/refresh option then doing ? I am quite confused, people here tend to tell me the vfs/refresh is actually keeping the file structure in memory ? right ?

rclone rc vfs/refresh, that is for the vfs dir cache, the list of directory/file names stored in memory.
it will pre-cache all the directory/file names in memory.

for now, just use your last posted command as is, with both caches.

  • the vfs dir-cache is always enabled.

  • the vfs file cache is optional.
    for example, for my emby media server, i do not use the vfs file cache.
    in effect --vfs-cache-mode=off so when i play a media file, rclone will stream it direct from the cloud, not caching it on local storage.

let's say i have a movie, 1GB in size and i watch it twice in a row.

  • --vfs-cache-mode=off
    rclone will download it twice, 2GB downloaded

  • --vfs-cache-mode=full
    the first time i watch it rclone will save the file in the vfs file cache, on local storage.
    the second time i watch it, rclone will already have it in the vfs file cache and will not download it again.
    so rclone will have only downloaded 1GB.

1 Like

Regarding the amount of sub-folders/files within a folder, this becomes moot with the dir cache. I used to think that my extremely slow Plex scans were directly related to how Windows Explorer handles the metadata (or initial lack thereof), but after switching to the new Plex scanner this hasn't been an issue at all. I went from 2.5 hours of scan time for a folder with 13,000 sub-folders to now less than five minutes. So, for Plex use, it's perfectly fine to have lots of files and/or sub-folders, as long as you refresh the dir cache before a scan (and you're using the new scanner).

1 Like

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.