These are my notes for the tests i've done with rclone/mergerfs, cache backend and no cache backend. I'm not sure if it's legible enough so i'll explain;
I started off with the top listed drive.service
and rclone.conf
which includes cache backend.
I then only changed the chunk size at first and tested 1 movie with .ass soft embeded subtitles in jellyfin and counted the seconds it would load if i chose the 'burn subtitles' option which loads movie really slowly.
I then opened 1 song and counted, then another and counted.(movie and songs were the same every time).
Keep in mind i did delete my cache and restart rclone mount and mergerfs and jellyfin before starting each test.
It was easy to count seconds as the jellyfin preloader spins was decent at gauging it.
I also tried changing the workers
option in the rclone.conf which sped things up as well.
In the end, it seems drive.service number 2, the first set of mergerfs options, and adding buffer-size 1g
to drive.service number 2 ended up loading the video second fastest(35 second) and removing buffer-size completely(using rclone default) loaded the video fastest in 29 seconds.
drive.service 1
ExecStart=/usr/bin/rclone mount cache: /mnt/drive \
--allow-other \
--gid=1000 \
--uid=1000 \
--bind xx.xx.xx.xx \
--dir-cache-time 6570h \
--fast-list \
--cache-chunk-path=/data/.cache/rclone \
--cache-db-path=/data/.cache/rclone \
--log-file /opt/rclone/logs/rclone.log \
--umask 002 \
--log-level INFO \
--user-agent rclone
rclone.conf(with cache)
[cache]
type = cache
remote = drive:
chunk_size = 64M
info_age = 8760h
chunk_total_size = 50G
db_path = /data/.cache/rclone
chunk_path = /data/.cache/rclone
chunk_clean_interval = 5m
workers = 8
mergerfs.service options
-o rw,async_read=false,use_ino,allow_other,func.getattr=newest,category.action=all,category.create=ff,cache.files=auto-full,dropcacheonclose=true
changed options in rclone.conf and test results
workers = 8
chunk_size =128M
57 seconds to load movie
4 seconds to load song 1
4 seconds to load song 2
workers = 8
chunk_size =16M
47 seconds to load movie
9 seconds to load song 1
6 seconds to load song 2
workers = 8
chunk_size =256M
100 seconds to load movie
4 seconds to load song 1
5 seconds to load song 2
workers = 8
chunk_size =64M
43 seconds to load movie
3 seconds to load song 1
4 seconds to load song 2
workers = 8
chunk_size =32M
45 seconds to load movie
5 seconds to load song 1
4 seconds to load song 2
workers = 1
chunk_size =64M
100 seconds to load movie
4 seconds to load song 1
5 seconds to load song 2
workers = 4
chunk_size =64M
43 seconds to load movie
4 seconds to load song 1
4 seconds to load song 2
new drive.service 2 without cache backend
ExecStart=/usr/bin/rclone mount drive: /mnt/drive \
--allow-other \
--gid=1000 \
--uid=1000 \
--bind xx.xx.xxx.xxx \
--dir-cache-time 6570h \
--log-level INFO \
--log-file /opt/rclone/logs/rclone.log \
--poll-interval 15s \
--timeout 1h \
--umask 002 \
--user-agent rclone \
--rc \
--rc-addr 127.0.0.1:5572
test results with new drive.service
42 seconds to load movie
2 seconds to load song 1
3 seconds to load song 2
options changed in new drive.service
--buffer-size 1G
35 seconds to load movie
2 seconds to load song 1
2 seconds to load song 2
***remove buffer size completely(using default)
29 seconds to load movie
2 seconds to load song 1
2 seconds to load song 2
mergerfs options changes
this produces 53 seconds for the movie to load but not sure what mergerfs has to do with it. i checked twice and both times were 53 and 54 seconds
-o rw,async_read=false,use_ino,allow_other,func.getattr=newest,category.action=all,category.create=ff,cache.files=partial,dropcacheonclose=true