I recently in the last couple of months moved all of my Plex media storage to a Google Drive and user a MergerFS mount combined with an rclone mount to present that media to Plex. The MergerFS mount presents a local directory that Sonarr/Radarr writes to first along with the Google Drive and a script uploads daily from the local directory to the drive.
Ever since it seems like I'll randomly get a period where a bunch of people will experience buffering for ~10 minutes or so and then everything will work fine. But not everyone experiences the trouble. Seems to happen at least once a day, usually in the evenings. Sometimes there's 3-4 plays occuring, sometimes there's 10. I've tried to check everything I can think of.
I don't believe it's a bandwidth issue, I have gigabit fiber that's synchronous. Frequent speed tests show AT&T is providing that, consistently 800+ Mbps and 5ms latency.
I thought it might be a CPU issue with multiple transcodes but it seems like direct plays experience the trouble far more often. Rarely does a transcoding session buffer when this trouble is occurring.
It happens on multiple device types, Plex Web, Xbox One, iOS, Fire Stick etc...
It happens on streams local to my server and remote, I understand the media is always remote from the server unless it's a fresh download.
I checked the Plex service status and it's not reporting any instances of a slow db when the trouble occurred.
I thought Sonarr/Radarr etc... might be kicking off a scan causing API errors but I checked the metrics on my Google API dashboard and it shows no errors during tonight's trouble. I am also using my own Client ID instead of the default rclone one.
Server is hosted on an R710 running ESXi. VM has 12vCPUs and 16GB of RAM and is running on Ubuntu 18.04. Running the latest PlexPass release.The VM traffic is also traversing a 10Gb link from the R710 > LAN > Firewall (pfSense) where it then leaves on the 1Gb WAN connection.
Here is my rclone mount. Is there anything else I should be checking for?
root@plex01:~# cat /etc/systemd/system/mcryptmount.service
[Unit]
Description=RClone Service
Wants=network-online.target
After=network-online.target[Service]
Type=notify
Environment=RCLONE_CONFIG=/home/administrator/.config/rclone/rclone.conf
KillMode=none
RestartSec=5
ExecStart=/usr/bin/rclone mount m_crypt: /mnt/m_crypt/
--allow-other
--buffer-size 128M
--dir-cache-time 1000h
--log-level INFO
--log-file /opt/rclone/logs/rclone.log
--poll-interval 15s
--timeout 1h
--umask 002
--rc
--rc-addr=127.0.0.1:5791
ExecStop=/bin/fusermount -uz /mnt/m_crypt/
Restart=on-failure
User=administrator[Install]
WantedBy=multi-user.target
And here is the MergerFS mount
root@plex01:~# cat /etc/systemd/system/mediamount.service
[Unit]
Description = /media MergerFS mount
Requires=mcryptmount.service
After=mcryptmount.service
RequiresMountsFor=/mnt/VMdata/
RequiresMountsFor=/mnt/m_crypt/[Service]
Type=forking
ExecStart=/usr/bin/mergerfs /mnt/VMdata/Downloads/TempMedia:/mnt/m_crypt/ /mnt/media -o rw,async_read=false,use_ino,allow_other,func.getattr=newest,category.action=all,category.create=ff,cache.files=partial,dropcacheonclose=true
KillMode=process
Restart=on-failure#[Mount]
#What = /mnt/VMdata/Downloads/TempMedia/:/mnt/m_crypt/
#Where = /mnt/media
#Type = fuse.mergerfs
#Options = async_read=false,use_ino,allow_other,func.getattr=newest,category.action=all,category.create=ff,cache.files=auto-full[Install]
WantedBy=multi-user.target