[GUIDE] [NSX-T] [PART 1.1] Troubleshoot poor performance
![](https://kdslabs.fr/wp-content/uploads/2023/10/pcisiglogo_678x452.png)
Sur l’article précédent vous avez pu voir que je rencontre actuellement un problème de bande passante sur une infrastructure VxRail de 2x25Gbit/s * 3 hosts.
C’est pendant un lab (HOL-2409-21-SDC) pour tester les nouvelles features de vSphere 8 sur la partie vNUMA que j’ai pu lire une bonne pratique à laquelle on ne pense pas toujours, et qui peut être responsable de dégradation de performances si l’uplink physique (ou la storage card dans le cas du lab) ne serait pas sur le bon PCie « lane » et ce, peu importe la génération de PCie que l’on a dans son serveur.
Dans mon cas les serveurs VxRail sont pleinement compatible « VMware Hardware Compatibility List » donc le problème de performance ne peut pas venir de là mais voyons quand même cette notion de bande passante sur des ports PCIe.
![A close-up of a blue and white text
Description automatically generated](https://kdslabs.fr/wp-content/uploads/2023/10/a-close-up-of-a-blue-and-white-text-description-a.png)
PCie Gen 4 : GT/s et encodage
Très souvent, voire presque toujours lorsque nous parlons de ports PCie nous parlons de « PCIe lanes » qui en général, sont soit « x8 » soit/ou du « x16 » sur nos serveurs, mais les fiches techniques des constructeurs indiquent toujours du GT/s plutôt que du Gbps qui serait bien plus facile à comparer à des specs de carte réseau par exemple.
N.B : le bus/lane peut aussi se comparer à la fréquence, donc 16 GT/s serait égal à 16 Ghz.
Tout d’abord la première notion à comprendre lorsque nous parlons de PCie est l’encodage qu’utilise la version PCie, et c’est d’ailleurs en partie cet encodage qui va nous permettre de trouver les valeurs que nous allons voir par la suite.
Il faut savoir que de la version 1.X à la version 2.X l’encodage était fait via du 8b/10b (ou « Line Code » sur les docs VMware Telco), puis c’est qu’à partir de la Gen3 jusqu’à la Gen5 que cet encodage va évoluer pour passer à du 128b/130b. (Sur la Gen6 l’encodage passe sur de la modulation/encodage PAM4/FLIT).
Concrètement l’encodage 128b/130b permet d’avoir un taux d’overhead beaucoup moins élevé de l’ordre de 1.54% (ou 98.46% d’efficacité) contre 20% sur les générations d’encodage 8b/10b, et c’est d’ailleurs pour ça que 3 générations de suites utilisaient ce type d’encodage et l’utilisent encore sur d’autres technologies telle que l’USB 3.1.
Fonctionnement de l’encodage 128b/130b
L’encodage 128b/130b une notion purement de transmission/modulation, mais nous pouvons le voir (de façon très brève) comme un mappage « d’encode » d’un sens puis d’un « decode » dans l’autre sens.
Le schéma ci-dessous explique très bien ce concept même s’il est appliqué à du 8b/10b.
![](https://kdslabs.fr/wp-content/uploads/2023/10/8b-10b-1024x714.png)
Calcul du GT/s et de la bande passante :
L’idée de cet article est plutôt de comprendre la relation entre la bande passante d’un port PCIe et d’une carte réseau qui y est connectée. Pour cela il faut récupérer les valeurs maximales en GT/s (GigaTransfers) que peut prendre en charge chaque « lane » et chaque « GenX »
N.B : Evidemment le concept reste le même si vous avez affaire à une carte GPU dans le cas d’une infrastructure VDI par exemple.
![A blue and black rectangular box with white text
Description automatically generated](https://kdslabs.fr/wp-content/uploads/2023/10/a-blue-and-black-rectangular-box-with-white-text.png)
Dans l’exemple si nous prenons le bus «x16 » de la version 3 PCie le calcul serait le suivant :
16 GT/s * 2 (la transmission est en full duplex) * 16 lanes = 256 GT/s que nous divisons par 8 bits pour obtenir 64 GB/s.
D’ailleurs sans faire le calcul nous pouvons voir qu’en Gen4 il suffit d’un bus x8 pour obtenir le même débit, et qu’avec un bus x16 en Gen4 nous pouvons obtenir jusqu’à 128GB/s.
Conclusion :
Dans mon cas il s’agit de cartes Intel E810-XXV qui se connecte sur un port PCIe Gen4 x8 (débit maximum de 64GB/s) donc il est clairement impossible que le port soit en lien avec ce problème de performance, il est même d’ailleurs théoriquement possible de monter des « uplink » de 100Gb sans même saturer un tant soit peu le port.
Mais il faut aussi comprendre qu’avec l’arrivée de la Gen6 sur 2023-2024 nous serons capable de monter des NIC jusqu’à 800GB/s !
No responses yet