PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Proxmox und Jellyfin - Schlechte Performance über 10 GbE, gute über Onboard-LAN?


oN1
2025-06-02, 15:16:29
Hi,

ich habe ein merkwürdiges Problem mit folgendem Homeserversystem:

AMD Ryzen 7 PRO 8700G
2x Kingston Server Premier DIMM 48GB, DDR5-5600, CL46-45-45, ECC
ASRock B650M-HDV/M.2
10Gtek X710-DA2 Netzwerkkarte Port 0 ist mit einem DAC-Kabel mit einem Switch verbunden


Haupteinsatzzweck ist ein Truenas-VM. Ich wollte jedoch gerne auch Jellyfin nutzen und verwende einen LXC-Contrainer auf Grundlage des Scripts von https://tteck.github.io/Proxmox/.
Jellyfin greift auf eine der NAS HDDs zu, auf der meine Filme liegen. Das ganze funktioniert grundsätzlich gut. Allerdings nur, solange ich ausschließlich über den 2,5Gbit-Onboard-NIC auf Jellyfin zugreife.
Wenn ich über den 10GBit-Port der Netwerkkarte auf Jellyfin zugreife, laden die Filme sehr lange bis sie anfangen zu laufen und bleiben dann häufig im Sekundendtakt hängen.
Das Problem mit dem Zugriff über 10GBit scheint ausschließlich Jellyfin zu betreffen: Die Transferraten beim direkten Zugriff auf die Festplatte der Turenas-VM über 10GBit scheinen okay zu sein. Ich kann das nicht abschließend testen, da mein derzeitiger Client-PC nur eine 1GBit-Karte hat, aber 110MB/s erreiche ich ohne Probleme. Auch sonst greife ich grundsätzlich über die 10GBit auf den Server zu und alles geht.

Die Netzwerkkonfiguration in Proxmox ist wie folgt:

Network Device 1: Port 0 10GBit-Netzwerkkarte
Network Device 2: Port 1 10GBit-Netzwerkkarte
Network Device 3: 2,5GBit-Onboard

Linux Bond: Mit Modus "active-backup" - Failover von Network Device 1 auf Network Device 2
Linux Bridge 1 (vmbr0): Linux Bond, MTU 1500
Linux Bridge 2 (vmbr1): Network Device 3, MTU 1500

Ich habe auch ausprobiert bei der Linux Bridge 1 den Linux Bond durch Network Device 1 zu ersetzen - gleiches Ergebnis: Wenn ich das Network Device des Jellyfin-LXC-Containers auf vmbr0 stelle hängt es, mit vmbr1 läuft es gut.
Meine erste Vermutung ging dahin, dass es an einem falschen MTU-Wert liegt, aber ich habe bei beiden Bridges MTU 1500 und Jellyfin hat bei seinem Network Device MTU: "Same as bridge" - daran scheint es also auch nicht zu liegen.


Ich weiß, dass das ein komplexer Aufbau ist und es wahrscheinlich an 100 Sachen liegen kann und sicherlich auch Informationen fehlen, aber unter der Prämisse das 10GBit sonst gut läuft verstehe ich nicht, wo das Problem mit Jellyfin liegt. Vielleicht könnt ihr mir Denkanstöße geben, was ich noch ausprobieren könnte.

konkretor
2025-06-02, 19:56:02
Es könnte am Intel-Treiber liegen, den der Kernel mitliefert.
Ich hatte letztes Jahr ein Support-Ticket bei Intel offen, bei dem genau dieses Thema behandelt wurde. Die Distributionen übernehmen nicht immer alle Änderungen, die Intel committet – daher bietet Intel die Treiber weiterhin separat an.

Als ich den offiziellen Treiber von Intel verwendet habe, lief alles problemlos.

Links zu den Treibern:

Intel Network Adapter Linux Virtual Function Driver (700 & E810 Series) (https://www.intel.de/content/www/de/de/download/18159/intel-network-adapter-linux-virtual-function-driver-for-intel-ethernet-controller-700-and-e810-series.html)
GitHub: intel/ethernet-linux-iavf (https://github.com/intel/ethernet-linux-iavf)

Wenn du keine Angst davor hast, einen Compiler zu benutzen, solltest du das mal ausprobieren.

Welcher Treiber wird aktuell geladen?
Führe dazu folgenden Befehl aus:

ethtool -i ens785f0


Wie sieht die Performance mit iperf aus?
Teste das einmal im Container und dann am Ziel.
Passen dort die Werte?

SR-IOV fällt weg, da du keine VM nutzt.

Du könntest alternativ die Linux Bridge durch Open vSwitch oder VPP ersetzen:
VPP Dokumentation (fd.io) (https://s3-docs.fd.io/vpp/25.06/)

oN1
2025-06-02, 21:05:55
Danke.

ethtool -i gibt für die Netzwerkkarte (Port 0) folgendes aus:
driver: i40e
version: 6.8.12-10-pve
firmware-version: 8.70 0x8000c408 1.2684.0
expansion-rom-version:
bus-info: 0000:02:00.0
supports-statistics: yes
supports-test: yes
supports-eeprom-access: yes
supports-register-dump: yes
supports-priv-flags: yes

iperf3 direkt in Proxmox (über 10GBit Port 0):
[ ID] Interval Transfer Bitrate
[ 5] 0.00-1.00 sec 117 MBytes 980 Mbits/sec
[ 5] 1.00-2.01 sec 115 MBytes 950 Mbits/sec
[ 5] 2.01-3.01 sec 112 MBytes 949 Mbits/sec
[ 5] 3.01-4.01 sec 113 MBytes 950 Mbits/sec
[ 5] 4.01-5.00 sec 113 MBytes 949 Mbits/sec
[ 5] 5.00-6.02 sec 115 MBytes 949 Mbits/sec
[ 5] 6.02-7.01 sec 113 MBytes 950 Mbits/sec
[ 5] 7.01-8.01 sec 113 MBytes 949 Mbits/sec
[ 5] 8.01-9.01 sec 113 MBytes 950 Mbits/sec
[ 5] 9.01-10.00 sec 113 MBytes 949 Mbits/sec
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval Transfer Bitrate
[ 5] 0.00-10.00 sec 1.11 GBytes 952 Mbits/sec sender
[ 5] 0.00-10.03 sec 1.11 GBytes 949 Mbits/sec receiver

iperf3 in Jellyfin LXC (über 10GBit Port 0):
[ ID] Interval Transfer Bitrate
[ 5] 0.00-1.01 sec 116 MBytes 962 Mbits/sec
[ 5] 1.01-2.01 sec 110 MBytes 922 Mbits/sec
[ 5] 2.01-3.00 sec 111 MBytes 935 Mbits/sec
[ 5] 3.00-4.01 sec 113 MBytes 939 Mbits/sec
[ 5] 4.01-5.01 sec 111 MBytes 930 Mbits/sec
[ 5] 5.01-6.01 sec 112 MBytes 945 Mbits/sec
[ 5] 6.01-7.01 sec 113 MBytes 950 Mbits/sec
[ 5] 7.01-8.01 sec 113 MBytes 949 Mbits/sec
[ 5] 8.01-9.00 sec 113 MBytes 949 Mbits/sec
[ 5] 9.00-10.00 sec 112 MBytes 938 Mbits/sec
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval Transfer Bitrate
[ 5] 0.00-10.00 sec 1.10 GBytes 942 Mbits/sec sender
[ 5] 0.00-10.00 sec 1.09 GBytes 940 Mbits/sec receiver

Zum Vergleich: iperf3 in Jellyfin (über 2,5GBit-Onboard):
[ ID] Interval Transfer Bitrate
[ 5] 0.00-1.00 sec 115 MBytes 964 Mbits/sec
[ 5] 1.00-2.01 sec 114 MBytes 950 Mbits/sec
[ 5] 2.01-3.01 sec 113 MBytes 950 Mbits/sec
[ 5] 3.01-4.00 sec 112 MBytes 948 Mbits/sec
[ 5] 4.00-5.01 sec 114 MBytes 950 Mbits/sec
[ 5] 5.01-6.01 sec 112 MBytes 949 Mbits/sec
[ 5] 6.01-7.00 sec 112 MBytes 949 Mbits/sec
[ 5] 7.00-8.01 sec 114 MBytes 950 Mbits/sec
[ 5] 8.01-9.01 sec 112 MBytes 949 Mbits/sec
[ 5] 9.01-10.00 sec 113 MBytes 950 Mbits/sec
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval Transfer Bitrate
[ 5] 0.00-10.00 sec 1.11 GBytes 951 Mbits/sec sender
[ 5] 0.00-10.02 sec 1.11 GBytes 949 Mbits/sec receiver


Die Abweichung der Werte mit der 10GBit-Karte in Jellyfin sind nicht groß, aber scheinen reproduzierbar zu sein.

Mit dem Compilen von Treibern habe ich keine Erfahrung. Ich lese mich aber mal ein. :)

konkretor
2025-06-02, 21:29:09
hmm, probier das mal aus, das schreibt auf dein Storage mal ein paar blöcke bricht das auch ein? Weil die Netzwerk Performance sieht ja ganz gut aus, da gibts wenig Ausreißer
Also den Treiber anpassen würde ich nicht machen.

- Teste die Storage-Performance: dd if=/dev/zero of=/pfad/zu/deinen/medien/testfile bs=1M count=1009

Was noch sein könnte wäre das hier nur ein CPU Core ausgenutzt wird

https://forum.proxmox.com/threads/1st-core-is-overloaded-by-intel-nic-irqs.47166/

Hast du dem Container mehr als eine CPU zugewiesen?

oN1
2025-06-02, 21:51:21
Habe ich gemacht:

1009+0 records in
1009+0 records out
1058013184 bytes (1.1 GB, 1009 MiB) copied, 9.23109 s, 115 MB/s

Birdman
2025-06-02, 21:57:02
Allenfalls ein Offloading Bullshit welches die Intel x710 NICs unterstützen, aber nicht sauber funktioniert und von Jellyfin genutzt wird?

Ansonsten auch mal noch ein NVM/Firmware Update bei den X710-DA2 durchführen? (https://www.intel.com/content/www/us/en/download/18190/non-volatile-memory-nvm-update-utility-for-intel-ethernet-network-adapter-700-series.html)

konkretor
2025-06-03, 13:04:36
Habe ich gemacht:

1009+0 records in
1009+0 records out
1058013184 bytes (1.1 GB, 1009 MiB) copied, 9.23109 s, 115 MB/s





das ist wirklich nicht gut, und da liegt ne SSD oder HD drunter? Nutzt du NFS oder was anderes?

oN1
2025-06-03, 20:18:06
Die Festplatten sind derzeit etwas abenteuerlich angebunden. ich ändere das in den nächsten Tagen. Es kann gut sein, dass es wirklich daran liegt. Falls ja berichte ich.

urbi
2025-06-07, 00:44:29
Ich habe mir das heute mal angesehen. Meine Weisheit reicht aber nur bedingt weiter als die von on1. :freak:

Das Ruckeln/Stocken bei Jellyfin lag jedenfalls nicht an der Anbindung der Festplatten. Das haben wir behoben. Die Filme liegen auf zweit HDDs, die als Mirror in einer Truenas-Scale VM hängen. Der Zugriff durch Jellyfin erfolgt über SMB-Freigabe. Dass es vorher so langsam ging lag daran, dass die Filme teilweise auf einem Uralt-Server (angebunden über 1Gbit/s Netzwerk) lagen.

Aktuelle Werte:

10gb
1009+0 records in
1009+0 records out
1058013184 bytes (1.1 GB, 1009 MiB) copied, 0.65498 s, 1.6 GB/s

2,5gb
1009+0 records in
1009+0 records out
1058013184 bytes (1.1 GB, 1009 MiB) copied, 3.92283 s, 270 MB/s

Doch wie gesagt: Gebracht hat es leider nichts.

DraconiX
2025-06-19, 10:27:06
Hä? Die Werte passen doch genau zu den erwarteten Leitungen.

oN1
2025-06-21, 20:25:00
Die Festplattenwerte waren immer gut genug, damit Filme eigentlich sauber laufen sollten. Über den 2,5GBit-Onboard-NIC hatte ich keine Probleme. Nur wenn man stattdessen über die 10GBit-Netzwerkkarte auf Jellyfin zugegriffen hat, stockte die Wiedergabe - obwohl die Werte der Netwerkkarte gut bzw. teilweise sogar besser waren als die des Onboard-NIC. Die ganze Festplatten-Geschichte diente nur dazu, das als Fehlerquelle eindeutig auszuschließen. :)

Inzwischen konnte ich das Problem isolieren und durch einen Hardwaretausch lösen: Nachdem urbi vor zwei Wochen seinen Feierabend geopfert hat, um meine Konfiguration zu überprüfen, war ich relativ sicher, dass die Konfiguration insgesamt okay ist und es irgendwie an der Netzwerkkarte liegt. Ich wollte dann das von Birdman empfohlene NVM-Update einspielen. Das habe ich ums Verrecken nicht hinbekommen. Nach einiger Recherche habe ich dann herausgefunden, dass 10Gtek zwar bei den Treibern usw. auf die Intel-Seite verweist, aber dass NVM-Updates ein Problem sind (die Info bezog sich auf eine Intel 520er Karte, aber ich habe daraus geschlossen, dass es bei meiner auch so sein könnte). Daraufhin habe ich die Karte gegen eine Intel EX710DA2G1P5 getauscht. Die habe ich eingebaut und ohne jegliche Änderung (keine Konfigurationsänderung, kein NVM-Update, kein Treiberupdate) läuft jetzt alles wie es soll.

Nochmal danke an Euch alle. Ihr habt mir wirklich sehr weitergeholfen.