Using rclone to host a "streamable" copy of iso/rom files


I am looking at possibly using rclone to host some rom files in an organized structure, to then share from a machine. From there, I will have my Nvidia Shield mount that folder using SMB (since from what I have read, the shield/android is still not ready to use rclone or NFS sufficiently) to then play games using retroarch.

These files could be anywhere from a few MB, to several GB.

I am using the following settings to mount the Google Drive folder on the PC with VFuse:

/usr/bin/rclone mount ggames: /mnt/ggames --allow-other --dir-cache-time 96h --drive-chunk-size 16M --log-level INFO --log-file /var/log/rclone.log --timeout 3h --umask 002

While this is mounted, the read speed is abysmal from what I can tell. I am getting a few KB/s where I have a 1GB Line down.

Is there something I could do to speed up the use of this? I guess I could use the cache, but, I am unsure of what order to put the config in that case. Do I do:

gdrive > cache
cache > gdrive
gdrive > cache > gdrive

1 Like

Is that direct to the mount, or over SMB?

How are you measuring the speed?

Not the best way to measure speeds, but it was over SMB and it was just a cursory glance.

I am using SMB as the means of checking, as the Nvidia Shield can only mount network shares over SMB, and retroarch will have to use that mechanism for streaming the ROM.

What I was wondering is if this was an interaction between Rclone mount and SMB or whether the mount itself was very slow. It sounds like it is probably the interaction which is the problem.

SMB has quite a few options read size / write size etc it might be worth having a go at tweaking some of those.

Well, I tried running this test again as a write test directly to the mounted drive:

root@plex:/mnt/ggames# dd if=/dev/zero of=test bs=64k count=16k conv=fdatasync
16384+0 records in
16384+0 records out
1073741824 bytes (1.1 GB, 1.0 GiB) copied, 2022.74 s, 531 kB/s

I have an upload speed of 40 Mbps

If I attempt to read a random file:
root@plex:/mnt/ggames# time dd if=test of=/dev/null bs=8k
131072+0 records in
131072+0 records out
1073741824 bytes (1.1 GB, 1.0 GiB) copied, 15.6299 s, 68.7 MB/s

real 0m15.652s
user 0m0.028s
sys 0m0.485s

Where as I have a 1000 Mbps downstream.

I guess I would expect more read from the downstream here.

Alternatively, is there a better way to do this directly on the nVidia shield device with the use of Rclone?

When you did the test above, did you still have rclone mounted? If I were you I'd remove rclone from the picture for the test. Read and write to a smb share that's on the local file system. And tweak the smb read and write parameters. Once you figure out if smb will work for you, then you can layer rclone and see what latency/speed rclone adds.

I have to believe this is going to be pretty slow depending on how those isos are used which is likely scattered reads which will slow things down.

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