2-Port 10Gbe-NIC Die Hälfte der erwarteten Leistung

1416
Nate

Ich habe Probleme mit dem erwarteten Durchsatz eines Intel Dual Port 82599EB 10-Gigabit. Ich habe viele Dinge ausprobiert und möchte wissen, ob es etwas gibt, das ich probieren könnte.

Meine Hardwarekonfiguration

Jeweils zwei Server mit OpenSUSE und einem Intel Dual Port 82599EB 10 GbE. Sie werden manuell für statische IPs konfiguriert, und jeder Port eines Computers ist mit einem Port des zweiten verbunden.

lspci -vv

Durchsatztest

Ich verwende iperf zum Testen. Die Karten fahren an Ixgbe vorbei.

Auf der Empfängerseite renne ich

iperf -s 

Auf der Senderseite:

iperf -c 192.168.1.10 -t 20 -B 192.168.1.20 iperf -c 192.168.1.11 -t 20 -B 192.168.1.21 

Und ich bekomme jetzt etwa 4.x GB pro Schnittstelle. Wenn ich nur eine Schnittstelle betreibe, bekomme ich 9.x GB.

Konfigurationsversuche

Ich habe mir SE-Sites und viele andere Artikel angesehen. Hier sind drei hilfreiche, die ich gefunden habe.

  1. Netzwerkkonnektivität - Optimierung der Durchsatzleistung des Intel® Ethernet Adapter
  2. https://www.kernel.org/doc/Documentation/networking/ixgbe.txt
  3. http://www.redhat.com/promo/summit/2008/downloads/pdf/Thursday/Mark_Wagner.pdf (PDF)

Die zwei Dinge, die wirklich geholfen haben:

  1. Verwendung von Jumbo-Frames durch Setzen der MTU auf 9000.
  2. Erhöhung der rmem-Einstellungen in /etc/sysctl.conf

Ich bin jedoch immer noch bei ungefähr 9,5 Gbe für beide Kanäle kombiniert. Ich denke, ich sollte 9 Gbe oder mehr pro Kanal bekommen.

Dinge, die ich ohne viel Erfolg versucht habe:

  • Verwendet ethtool -c, um Interrupt-Koaleszenz zu variieren
  • Verwendet Ethtool zum Deaktivieren / Aktivieren der Flusskontrolle

Bearbeitungen wie in den Kommentaren

Zum Testen der von mir verwendeten CPU-Auslastung mpstat -P ALL 5. Auf dem sendenden Server sehe ich eine Auslastung von 61%.

01:12:59 PM CPU %usr %nice %sys %iowait %irq %soft %steal %guest %idle ... 01:12:59 PM 4 0.00 0.00 61.33 0.00 0.00 9.38 0.00 0.00 29.29 

Das sollte in Ordnung sein, oder? Auf dem Empfänger sehe ich maximal 30%.

Mit lspci habe ich folgendes bekommen. Ich kann die vollständigen Ausgaben bei Bedarf posten, denke aber, dass dies die erforderlichen PC-Informationen zeigt:

Absender:

1: LnkCap: Port #16, Speed 5GT/s, Width x8, ASPM L0s, Latency L0 <2us, L1 <32us ClockPM- Surprise- LLActRep- BwNot- LnkCtl: ASPM Disabled; RCB 64 bytes Disabled- Retrain- CommClk- ExtSynch- ClockPM- AutWidDis- BWInt- AutBWInt- LnkSta: Speed 5GT/s, Width x8, TrErr- Train- SlotClk+ DLActive- BWMgmt- ABWMgmt- DevCap2: Completion Timeout: Range ABCD, TimeoutDis+ DevCtl2: Completion Timeout: 50us to 50ms, TimeoutDis- LnkCtl2: Target Link Speed: 5GT/s, EnterCompliance- SpeedDis-, Selectable De-emphasis: -6dB Transmit Margin: Normal Operating Range, EnterModifiedCompliance- ComplianceSOS- Compliance De-emphasis: -6dB 2: LnkCap: Port #16, Speed 5GT/s, Width x8, ASPM L0s, Latency L0 <2us, L1 <32us ClockPM- Surprise- LLActRep- BwNot- LnkCtl: ASPM Disabled; RCB 64 bytes Disabled- Retrain- CommClk- ExtSynch- ClockPM- AutWidDis- BWInt- AutBWInt- LnkSta: Speed 5GT/s, Width x8, TrErr- Train- SlotClk+ DLActive- BWMgmt- ABWMgmt- DevCap2: Completion Timeout: Range ABCD, TimeoutDis+ DevCtl2: Completion Timeout: 50us to 50ms, TimeoutDis- LnkCtl2: Target Link Speed: 2.5GT/s, EnterCompliance- SpeedDis-, Selectable De-emphasis: -6dB Transmit Margin: Normal Operating Range, EnterModifiedCompliance- ComplianceSOS- Compliance De-emphasis: -6dB 

Empfänger:

 1: LnkCap: Port #0, Speed 5GT/s, Width x8, ASPM L0s, Latency L0 <1us, L1 <8us ClockPM- Surprise- LLActRep- BwNot- LnkCtl: ASPM Disabled; RCB 64 bytes Disabled- Retrain- CommClk+ ExtSynch- ClockPM- AutWidDis- BWInt- AutBWInt- LnkSta: Speed 5GT/s, Width x4, TrErr- Train- SlotClk+ DLActive- BWMgmt- ABWMgmt- DevCap2: Completion Timeout: Range ABCD, TimeoutDis+ DevCtl2: Completion Timeout: 50us to 50ms, TimeoutDis- LnkCtl2: Target Link Speed: 5GT/s, EnterCompliance- SpeedDis-, Selectable De-emphasis: -6dB Transmit Margin: Normal Operating Range, EnterModifiedCompliance- ComplianceSOS- Compliance De-emphasis: -6dB 2: LnkCap: Port #0, Speed 5GT/s, Width x8, ASPM L0s, Latency L0 <1us, L1 <8us ClockPM- Surprise- LLActRep- BwNot- LnkCtl: ASPM Disabled; RCB 64 bytes Disabled- Retrain- CommClk+ ExtSynch- ClockPM- AutWidDis- BWInt- AutBWInt- LnkSta: Speed 5GT/s, Width x4, TrErr- Train- SlotClk+ DLActive- BWMgmt- ABWMgmt- DevCap2: Completion Timeout: Range ABCD, TimeoutDis+ DevCtl2: Completion Timeout: 50us to 50ms, TimeoutDis- LnkCtl2: Target Link Speed: 2.5GT/s, EnterCompliance- SpeedDis-, Selectable De-emphasis: -6dB Transmit Margin: Normal Operating Range, EnterModifiedCompliance- ComplianceSOS- Compliance De-emphasis: -6dB 

5 G / T bei x8 sollte ausreichend sein, oder?

1
`Und ich bekomme jetzt etwa 4.x GB pro Schnittstelle. Wenn ich nur eine Schnittstelle betreibe, bekomme ich 9.x Gb.` Sind Sie sicher, dass es keine weiteren Engpässe gibt und Ihr Problem die Netzwerkschnittstellen ist? Ist Ihre CPU ausgelastet oder etwas? Zoredache vor 9 Jahren 1
Oder dein PCI-Express-Bus? https://communities.intel.com/community/wired/blog/2009/06/08/understanding-pci-express-bandwidth cpt_fink vor 9 Jahren 2
Der PCI-Bus ist ein häufiger Engpass für 10G-Karten. MaQleod vor 9 Jahren 0
Ah gute Punkte! Vielen Dank! Ich bin hier ein bisschen aus meinem Element, aber ich glaube, ich habe die richtigen Informationen bereitgestellt. Wenn nicht, lass es mich wissen. Es scheint, als würden 5G / T pro Sekunde bei x8 reichlich sein, aber ich werde weiter suchen. Nate vor 9 Jahren 0

0 Antworten auf die Frage