[SOLVED] Multiqueue vtnet OPNsense

MLO

New Member
Feb 23, 2024
5
1
3
Hallo,

ich habe ein kurzes Anliegen: Wie verhält sich das mit den Multiqueues genau?

Wenn ich eine VM mit installierten OPNsense habe und dort meinetwegen 3-4 NIC konfiguriert. Meine VM hat 2 Cores und 8Gb RAM.

Laut Doku soll die maximale Anzahl der Queues nicht die Anzahl der konfigurierten vCores der VM übersteigen. Gilt das dann in Summe für alle NIC oder für jede einzeln?

Wenn ich drei NIC jeweils zwei Queues zuweise, müssen es dann 6 vCores sein oder reichen dennoch 2?

So eine richtig eindeutige Antwort habe ich darauf nicht gefunden.

Gruß
 
Wenn ich drei NIC jeweils zwei Queues zuweise, müssen es dann 6 vCores sein oder reichen dennoch 2?
Minimal idealerweise dann 6 vCores, weil du ja schlecht vorhersagen kannst, wann und wo traffic geschieht. "Solltest" du haben, es ist natürlich kein Zwang. Allerdings, wenn du keine Cores mehr zum Vergeben frei hast, dann ist das sogar kontraproduktiv und du fährst besser ohne die Multiqueue. Also gehe immer vom "schlimmsten" Zustand aus, dass du dann auf allen NICs traffic aus vollen Rohren in beide Richtungen hast und "eigentlich" sind für 4 NICs ohne Multiqueue bereits 2 vCores schon nicht ideal.
4 NICs ohne Multiqueue = minimum 4 vCores (damit wären die Queues bei vollem traffic zwar befüttert, aber deine VM selbst will ja auch noch was, also 6 wären hier recht optimal*)
4 NICs, 2er Queue jeweils = 4x2=8 vCores (*same here, dann 10 vCores)
 
Ok, dann ist es fast so wie ich es befürchtet habe. Aber das bedeutet in der Theorie das auch ein Asymetrische Vergabe in Frage kommen würde, als Beispiel:

NIC0 = 4
NIC1 = 2
NIC3 = 1
NIC4 = 2
System=2

Dann sollten mindestens 11 idealerweise 12 vCores der VM zugewiesen sein. Richtig? Manche Netze haben eher wenig Traffic manche mehr, je nach Bedarf also. Ok, das macht die Sache bei vielen Netzsegmenten etwas kompliziert. Aber gut zu wissen.
 
Dann sollten mindestens 11 idealerweise 12 vCores der VM zugewiesen sein. Richtig?
Exakt.

Manche Netze haben eher wenig Traffic manche mehr, je nach Bedarf also.
Exakt2, daher kommt man auch oft einfach so hin, indem man eher rumknappst und die Kerne für die VM einfach weglässt. Ich "schummele" da auch so gesehen, weil...gerade die Wartungs-vlans für IPMI oder sowas, die sind seltenst voll ausgelastet oder wenn dein WAN sagen wir mal auch nur 500/500 wäre an einer "Gbit"-Queue, dann kann man da auch noch ein halbes Kernchen wegsparen. :p

Edit:
Asymetrische Vergabe in Frage kommen würde
Für den Hinterkopf: mindestens 2 (bzw. durch 2 teilbare Anzahl) Queues pro NIC sind an sich ideal, weil eine Queue dann up und die andere down macht. Das schlägt sich dann in Latenzen positiv nieder wie negativ bei ungerade. Das ist aber wirklich in den Krümeln gepickt und da kann man noch nachfeilen, wenn die Latenzen wirklich stören oder wenn es Hänger gibt.

Diese Logik kannst du auch bei dickeren NICs direkt auf dem Host beobachten, die Treiber gucken wieviel Kerne die Kiste hat und machen dann die Interrupts zur Karte auf. Entweder dmesg nach MSI-X durchforsten oder sysctl-Werte vom jeweiligen Treiber.
 
Last edited:
  • Like
Reactions: MLO

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!