In dem Whitepaper von HP zu den QLogic (fka Broadcom) NetXtreme II-Adaptern , das die von mir getestete spezifische Netzwerkkarte enthält, heißt es (Seite 7), dass die Leistung ihrer kleinen Pakete für Pakete mit bis zu 256 Bytes / Paket über 5.000.000 Paketen / Sekunde liegt.
In meinen Tests mit einer App, in der ich die gesamte Verarbeitung mit Ausnahme des reinen UDP-Empfangsteils deaktiviert habe, kann ich nur bis zu 120.000 Pakete / Sek. Übertragen. Die Pakete sind gleichmäßig auf 12 Multicast-Gruppen verteilt.
Mir ist aufgefallen, dass es einen Core gibt (von jeweils 12 Cores auf den 2 Sockets), dessen Auslastung allmählich zunimmt, wenn ich die UDP- Sendegeschwindigkeit anhebe und die maximale Auslastung bei etwa 120.000 beträgt . Aber ich weiß nicht, was dieser Kern tut und warum. Es ist kein Single-Thread-Engpass in meiner App, da es keine Rolle spielt, ob ich eine einzelne Instanz der App für alle Multicast-Gruppen oder 12 Instanzen ausführe, die jeweils 1 Multicast-Gruppe verarbeiten. Der Engpass ist also nicht meine Receiver-App.
MSI ist aktiviert (überprüft über die Ansicht "Ressourcen nach Typ" im Geräte-Manager ) und RSS ist auch in den NIC-Einstellungen mit 8 Warteschlangen aktiviert. Was klammert sich also an diesen einen Kern? Alle NIC-Offloading-Funktionen sind derzeit aktiviert, aber das Deaktivieren hat nicht geholfen.
Wo könnte der Engpass sein?
Systemdetails:
- ProLiant BL460c Gen9
- Intel Xeon E5-2670 v3 (2 x 12 Kerne)
- HP FlexFabric 10 GB 2-Port 536FLB NIC
- Windows 2012 R2