Performances des cartes virtuelles

Bonjour,

Lors de mes audits et workshops, un des points que je contrôle, est le type de carte virtuelle, configuré dans les VMs.

Pour m’aider, RVTools, évidemment, facile d’utilisation, il permet un inventaire facile et remonte les informations importantes d’une infrastructure vSphere.

RVtool_vNIC

Commençons par un petit récapitulatif des cartes virtuelles :

Il existe plusieurs types de vNICs : les émulations et les paravirtualisées

L’historique est la vlance, qui est l’émulation de la carte AMD 79C970 PCnet32– LANCE NIC, qui était vue comme une carte 10 Mbps. Elle avait l’avantage d’être reconnu par la plus tard des (vieux) OS.

J’avoue en trouver encore, dans de très vieilles VMs… La remplacer par une carte VMXNET3, améliore sensiblement les performances de la VM.

VMXNET, première carte développée pat VMware avec l’ESX 2 , elle exige les VMware Tools et offre déjà une bande passante de 1 Gbps.

E1000, qui est l’émulation de la carte Intel 82545EM Gigabit Ethernet, reconnu par passablement d’OS récents. C’est une des cartes que l’on retrouve la plus dans les audits, car elle est proposée par défaut, lors de la création de VM. Beaucoup utilisée pour les OS Linux.

Plus récemment, on a vu apparaitre l’E1000e qui est l’émulation de la carte Intel Gigabit NIC 82574 apparue avec le Virtual Hardware version 8 et vSphere 5. Proposée par défaut pour Windows 8 et Windows 2012

VMXNET 2 (Enhanced): qui est l’extension de la VMXNET et qui offre de meilleures performances, le support du jumbo frames et hardware offloads. Apparue avec la version ESXi/ESX 3.5, elle exige également les VMware tools.
Elle était dédiée principalement pour les OS 32- et 64-bit de Microsoft Windows 2003 (Enterprise, Datacenter, and Standard Editions).

Finalement le VMXNET 3, qui est la dernière génération des cartes réseaux paravirtualisées ajoutant de la performance. Elle support la multi-queue, IPv6 offloads et MSI/MSI-X interrupt delivery, plus les fonctionnalités déjà supportées, dans le VMXNET2. Une fois de plus, il faut impérativement les VMware Tools et à jour, naturellement ! Elle est reconnue comme une carte 10Gbps
Elle est supportée par passablement d’OS, tel que Windows, Red Hat, Suse, Asianux, Debian, Ubuntu, Sun Solaris et Oracle Linux.

Maintenant, dans un environnement ou les vSwitch ont des uplink en 1 Gbps, cela vaut-il la peine de mettre du VMXNET3 ?

Rien ne vaut un petit test réel…

J’ai donc utilisé iperf, entre deux serveurs Windows 2012 R2, afin de mesurer les éventuelles différences de bande passante, selon les types cartes et j’ai joué le même protocole de mesure, entre les deux VMs, avec les cartes e1000, e1000e et la VMXNET3.

iperf_vmxnet3

Il est clair qu’à chaque fois, j’ai saturé le lien 1 Gbps et donc pas de plus-value à ce niveau.

Mais qu’en est-il des communications intra ESXi ? Ceci, pour autant que l’on reste en L2.

J’ai donc déplacé mes VMs sur le même ESXi et rejoué le protocole.

iperf_vmxnet3_intraESXi2

Et là, effectivement, on trouve une nette amélioration avec les vNICs paravirtualisées.

Voici les resultats:

entre ESXi intra ESXi
e1000 935 Mbits/sec 4.47 Gbits/sec
e1000e 926 Mbits/sec 4.47 Gbits/sec
VMXNET3 917 Mbits/sec 5.65 Gbits/sec

 

On retrouve également ces différences, lors de communication, entre des ESXi, avec des uplink 10Gbps.

En résumé : Utilisez les cartes virtuelles VMXNET3, dans tous les cas et si vous êtes avec des uplinks 1 Gbps et une application gourmande en bande passante, une petite règle d’affinité, dans votre DRS, vous offrira de meilleures performances. Mais attention, n’en faites pas trop, au risque de brider la répartition des ressources et le DRS.

Bonne recherche de performance.

 

One Reply to “Performances des cartes virtuelles”

  1. Alors attention avec vmxnet3 et linux.
    En effet a chaque upgrade de kernel avec une vmxnet 3 vous aller perdre le reseau car il faudra upgrader et donc rebuild les vmware tools.

    Il existe un init script qui permet de rebuild automatiquement les vmware tools et donc d’eviter ce probleme.

    Si vous etes dans un environement red hat vous pouvez alors utiliser les packages de vmware qui run en user space.

Leave a Reply to nOon Cancel reply

Your email address will not be published. Required fields are marked *

*

This site uses Akismet to reduce spam. Learn how your comment data is processed.