Mellanox connect-x3 (pci-e x8) pro 10gbit / nur max. 5gbit mit iperf3

IT-MCSE

Active Member
Nov 7, 2020
46
4
28
48
Hallo zusammen,

erstmal vorab ein Lob an das Forum. Hier findet so jeder die richtigen Antworten auf fast alle Fragen ;)

Hier mal meine Frage:

Ich habe eine 2x SFP+ Karte (Mellanox X3-Pro) verbaut. Alle Schnittsellen entsprechend den Win Servern zugeordnet und funktionieren auch soweit. Jetzt habe ich mittels "iperf3" einen Speedtest gemacht. Leider bekomme ich nur max. 5gbit hin. Die Karte ist im x8 PCIe Slot verbaut. Die MTU ist auf 9000 gesetzt.

Jemand eine Idee dazu ?

Auszug PVE lspci -nnk
1623069506612.png

Auszug PVE lspci -v -v -v -s 02:00.0
1623068325346.png

Auszug iperf3 vom Windows 10 Host
1623068431359.png

Auszug PVE ethtool enp2s0
1623068541316.png

Auszug PVE mstflint -d 02:00.0 q
1623069434541.png


Konfig PVE Schnittstellen:
1623068474915.png

Auszug Windows Server Netzwerkkarte:

1623070588115.png
Hier werden 10gbit angezeigt.

Auf den Windows Servern ist aktuell der virtio driver 0.1.190 installiert.


Iperf3 habe ich zwischen einem Windows Host mit 10gbit (funktioniert mit anderen 10gbit Teilnehmern mit Fullspeed) und dem PVE-Windows Server laufen lassen.

Ich habe soweit keine Ahnung mehr was hier schief läuft ?

Eventuell habt ihr noch Ideen :):cool:

Vorab schon mal Danke.
 

Attachments

  • 1623068264727.png
    1623068264727.png
    3.6 KB · Views: 5
Hast du eventuell nur PCIe 2.0 und kein PCIe 3.0 oder 4.0? Bei PCIe 2.0 könnte die Bandbreite zu gering für die Karte sein.
Dann ist noch wichtig ob der PCIe Slot am Chipsatz oder direkt an der CPU hängt. Falls er am Chipsatz hängt ist die Verbindung zwischen Chipsatz und CPU vielleicht der Flaschenhals. Am besten du testest mal mit iperf3 eine Verbindung vom Proxmox-Host selbst zu einem anderen Rechner mit 10Gbit NIC. Dann weißt du, ob man die NIC überhaupt 10Gbit schafft.

Und dann ist noch wichtig, dass da Virtio keine 10Gbit schafft wenn deine CPU zu lahm ist. Wenn du die NIC über Virtio in die Win10 VM bringst, dann wird die NIC ja virtualisiert und das raubt einfach zu viel Leistung. Volle 10 Gbit wirst du so wohl nicht hinbekommen. Wenn du wirklich die vollen 10Gbit in der VM brauchst, dann solltest du versuchen die NIC per PCI Passthrough direkt in die VM durchzureichen. Oder wenn du die selbe NIC an verschiedenen VMs brauchst dann halt SR-IOV zusätzlich benutzen. Dann hast du keine Virtualisierung mehr und du kannst auch die ganzen Hardware Offloading Features der NIC aktiviert lassen. So sollte die NIC dann deutlich weniger von der CPU ausgebremst werden.
 
Last edited:
Ich habe PCIe gen3 (PCIe 3.0) an allen Slots und eine CPU Xeon E3-1245v6 3,7 GHz (4 Kerne / 8 Threads). Denke nicht das es daran liegt. PCI Passthrough habe ich noch nicht aktiviert, werde es mal ausprobieren. Danach melde ich mich wieder.

Danke schon mal vorab.
 
Also ich bekomme hier keine 10G mit der ConnectX-3 hin. Dafür ist Virtio einfach zu lahm mit meinem Xeon E5.
 
Ok, bin gerade dabei auf einer "2 Maschine" gleiche Konfig PCI Passthrough zu aktivieren.
 
Ohne Virtio klappt 10G auf dem Host mit Jumboframes aber sobald Virtio Ins Spiel kommt und virtualisiert werden muss geht da nicht mehr als 3-6Gbit durch. Egal ob Windows, Linux oder FreeBSD Gast.
 
Wenn du deine Virtio Performance testen willst könntest du 2 VMs mit Virtio NICs einfach an eine Linux Bridge hängen und dann ein Iperf3 test zwischen beiden VMs machen. Dann ist ja die physische NIC aus dem Spiel und du misst nur die Performance die über die Virtio NICs und die Bridge läuft. Wenn du da keine 10Gbit bekommst, was sehr wahrscheinlich ist, dann weißt du ja woran es liegt.
 
Ich habe jetzt sämtliche Szenarien mal durch. Fazit: Selbst mit PCI Passthrough bekomme ich max. 7gbit hin. Scheint dann doch ein PCIe Lane Engpass zu sein. Ob PVE da die volle Performance durchzieht kann ich nicht sagen.

Virtio zu Virtio sind es die 5gbit max.

Na ja, ist aber jetzt auch "jammern auf hohem Niveau" :cool:

Vielen Dank für die Unterstützung, einfach ein geniales Forum.
 
Eventuell mal einen anderen PCIe Slot versuchen. Nur weil das ein PCIe 3.0 8x Slot ist heißt es ja nicht, das der auch immer mit 8x elektrisch angebunden ist. Oft hast du mechanische 8x Slots die nur mit 4x angebunden sind. Oder der PCIe 8x Slot ist zwar elektrisch mit 8x angebunden, hängt aber am Chipsatz und nicht an der CPU und kann dann je nach Auslastung des Chipsatzes nicht die volle Bandbreite liefern.
Im Idealfall willst du die NIC da an einen elektrischen 8x oder 16x PCIe 3.0 oder 4.0 Slot der an der CPU hängt.

Wenn du dann trotz optimalen PCI Slot nicht die 10Gbit erreichst, dann kannst du da noch einiges an Performance Tuning machen. Die NICs sind ja ziemlich komplex und es muss einiges richtig an den Parametern für die Treiber eingestellt werden. Um mal ein paar Optionen zu nennen:
- RDMA over Converged Ethernet (RoCE)
- TCP/UDP/IP stateless offload
- Intelligent interrupt coalescence
- TCP/UDP/IP checksum offload (CSO)
- TCP Large Send (< 64KB) or Giant Send (64KB-16MB)
- Offload for segmentation (LSO)
- Receive Side Scaling (RSS) up to 32 queues
- Line rate packet filtering
- Multiple queues per virtual machine
- Single Root IOV

Alles Dinge die man richtig einrichten muss, damit von der CPU Arbeit abgenommen und in die NIC verlagert wird, damit man volle Geschwindigkeit erreicht.
 

About

The Proxmox community has been around for many years and offers help and support for Proxmox VE, Proxmox Backup Server, and Proxmox Mail Gateway.
We think our community is one of the best thanks to people like you!

Get your subscription!

The Proxmox team works very hard to make sure you are running the best software and getting stable updates and security enhancements, as well as quick enterprise support. Tens of thousands of happy customers have a Proxmox subscription. Get yours easily in our online shop.

Buy now!