2023-08-03, 01:14 AM
(This post was last modified: 2023-08-07, 07:31 AM by St. Glocktopus. Edited 1 time in total.)
Okay so I'm absolutely stumped on this one. I have spent many days and too many hours trying to identify this issue and I'm hoping someone has experienced similar or has knowledge on how to find/fix. I'm a sysadmin for a living but networking is not my strong suite.
Setup details simplified breakdown:
=====
My setup is a SuperMicro SuperServer (specs available if needed) running Ubuntu 22.04.2 LTS with all the latest updates for all apps applied. I have Jellyfin running directly on the machine (no docker) using Apache2, Letsencrypt/certbot, and a domain provided by my router from Tp-Link and DDNS to point to it. I have a static Public IP from my ISP as well.
All of my devices are hard-wired to my network via Cat6 cables and 3 unmanaged switches rated for 1GB throughput each. I have fiber internet with 250/250mbps. I have verified the speeds are consistent to beta.speedtest.net while hardwired with every ethernet cable in use by connecting my laptop and verifying speeds are consistent for 3x tests on each cable, each port, each switch (absolutely a pointless test but I had to ensure my hardware wasn't the issue).
====
On to the issue ~
While attempting to stream shows/movies from my Jellyfin server to my local devices I have very random drops in speed from 250+mbps to less than 2mbps for no apparent reason and does not speed back up to 250+mbps until I close/reopen/restart/etc. I am using the latest updated version of Infuse Pro on my up-to-date iPhone (iPhone 14 Pro) and Apple TV (ethernet - model A2843 running tvOS 16.6 build 20M73) to test the speeds via the "share" speed-test function. Shows/movies will stutter hard and fail to play or load in small chunks, play for a few minutes/seconds and then buffer again for long periods of time or if I'm lucky the entire show/movie will load in one go and I'll have no issues until I attempt to fast-forward/rewind or stop the show/movie and attempt to resume it.
For the tests I would select a show/movie and press "start test" - it would begin the test reporting speeds of 250mbps+ the entire test no problem. If I stop and/or start a new test again it would either be full speed at 250mbps+ or completely throttle down to <2mbps until I stop and restart the test again (several times depending on how it decides to behave). I have included screenshots of the tests with my phone, I can include more from my TV if needed.
This issue only happens while on my local network. If I am on cellular or another Wi-Fi network I have zero issues and full speeds 24/7. I share my server with several other users, as one does for their friends and family, and none of them have any issues with stuttering or lag at any time. My GF has the exact same setup that I do: iPhone, same apple TV up-to-date, etc., same router and switch with Cat6 cable connections, Infuse Pro, internet speeds of 100mbps via copper -- and has absolutely zero issues. I had her do the same tests I did to ensure the issue doesn't happen with speedtests.
I have also tested this by using my browser on my laptop, desktop, the server itself, and a few other devices. It happens no matter what app I use (Swiftfin, Jellyfin browser, or Infuse) on any device and I can't figure it out at all. I have also ran 1000+ ping tests to make sure I wasn't having unexpected packet loss between my server and ISP, server and google DNS, server and computer/device, etc. I've tried setting my DNS to 1.1.1.1, 8.8.8.8, my router itself, my ISP's DNS, my sanity, etc. with no change.
I have gone through all my config files to ensure routing loops weren't causing the issue but again this only happens on local network and no one outside of my network has any issues.
I have attempted to reboot all devices, hard shut-down by unplugging and plugging back in, the works. The full list of troubleshooting would be a novel by itself so I've spared the full troubleshooting breakdown from this post but can provide more details if needed.
I've attached my Jellyfin log and ffmpeg log for reference.
Thank you for reading this very long post, I appreciate your time and hope I'm oblivious to a very obvious fix/issue.
Setup details simplified breakdown:
=====
My setup is a SuperMicro SuperServer (specs available if needed) running Ubuntu 22.04.2 LTS with all the latest updates for all apps applied. I have Jellyfin running directly on the machine (no docker) using Apache2, Letsencrypt/certbot, and a domain provided by my router from Tp-Link and DDNS to point to it. I have a static Public IP from my ISP as well.
All of my devices are hard-wired to my network via Cat6 cables and 3 unmanaged switches rated for 1GB throughput each. I have fiber internet with 250/250mbps. I have verified the speeds are consistent to beta.speedtest.net while hardwired with every ethernet cable in use by connecting my laptop and verifying speeds are consistent for 3x tests on each cable, each port, each switch (absolutely a pointless test but I had to ensure my hardware wasn't the issue).
====
On to the issue ~
While attempting to stream shows/movies from my Jellyfin server to my local devices I have very random drops in speed from 250+mbps to less than 2mbps for no apparent reason and does not speed back up to 250+mbps until I close/reopen/restart/etc. I am using the latest updated version of Infuse Pro on my up-to-date iPhone (iPhone 14 Pro) and Apple TV (ethernet - model A2843 running tvOS 16.6 build 20M73) to test the speeds via the "share" speed-test function. Shows/movies will stutter hard and fail to play or load in small chunks, play for a few minutes/seconds and then buffer again for long periods of time or if I'm lucky the entire show/movie will load in one go and I'll have no issues until I attempt to fast-forward/rewind or stop the show/movie and attempt to resume it.
For the tests I would select a show/movie and press "start test" - it would begin the test reporting speeds of 250mbps+ the entire test no problem. If I stop and/or start a new test again it would either be full speed at 250mbps+ or completely throttle down to <2mbps until I stop and restart the test again (several times depending on how it decides to behave). I have included screenshots of the tests with my phone, I can include more from my TV if needed.
This issue only happens while on my local network. If I am on cellular or another Wi-Fi network I have zero issues and full speeds 24/7. I share my server with several other users, as one does for their friends and family, and none of them have any issues with stuttering or lag at any time. My GF has the exact same setup that I do: iPhone, same apple TV up-to-date, etc., same router and switch with Cat6 cable connections, Infuse Pro, internet speeds of 100mbps via copper -- and has absolutely zero issues. I had her do the same tests I did to ensure the issue doesn't happen with speedtests.
I have also tested this by using my browser on my laptop, desktop, the server itself, and a few other devices. It happens no matter what app I use (Swiftfin, Jellyfin browser, or Infuse) on any device and I can't figure it out at all. I have also ran 1000+ ping tests to make sure I wasn't having unexpected packet loss between my server and ISP, server and google DNS, server and computer/device, etc. I've tried setting my DNS to 1.1.1.1, 8.8.8.8, my router itself, my ISP's DNS, my sanity, etc. with no change.
I have gone through all my config files to ensure routing loops weren't causing the issue but again this only happens on local network and no one outside of my network has any issues.
I have attempted to reboot all devices, hard shut-down by unplugging and plugging back in, the works. The full list of troubleshooting would be a novel by itself so I've spared the full troubleshooting breakdown from this post but can provide more details if needed.
I've attached my Jellyfin log and ffmpeg log for reference.
Thank you for reading this very long post, I appreciate your time and hope I'm oblivious to a very obvious fix/issue.