Le livre blanc de HP sur leurs adaptateurs QLogic (fka Broadcom) NetXtreme II , qui inclut la carte réseau spécifique que je teste, déclare (page 7) que les performances de leurs petits paquets pour les paquets jusqu'à 256 octets / paquet sont supérieures à 5 000 000 de paquets / s.
Dans mes tests avec une application où j'ai désactivé tout le traitement, à l'exception de la simple partie de réception UDP, je peux aller jusqu'à 120 000 paquets / sec uniquement. Les paquets sont répartis uniformément sur 12 groupes de multidiffusion.
J'ai remarqué qu'il y a un cœur (sur 12 cœurs chacun sur les 2 sockets) dont la charge augmente progressivement lorsque j'augmente le taux d'envoi UDP et atteint un maximum d'environ 120 000 . Mais je ne sais pas ce que fait ce noyau et pourquoi. Ce n'est pas un goulot d'étranglement à un seul thread dans mon application, car cela n'a pas d'importance si j'exécute une seule instance de l'application pour tous les groupes de multidiffusion, ou 12 instances qui gèrent 1 groupe de multidiffusion chacune. Le goulot d'étranglement n'est donc pas mon application de réception.
MSI est activé (vérifié via la vue "ressources par type" dans le gestionnaire de périphériques ) et RSS est également activé dans les paramètres NIC, avec 8 files d'attente. Alors, qu'est-ce qui s'accroche à ce seul noyau? Toutes les fonctionnalités de déchargement de carte réseau sont actuellement activées, mais leur désactivation n'a pas aidé.
Alors, où pourrait être le goulot d'étranglement?
Détails du système:
- ProLiant BL460c Gen9
- Intel Xeon E5-2670 v3 (2 x 12 cœurs)
- Carte réseau HP FlexFabric 10 Gb 2 ports 536FLB
- Windows 2012 R2