¿Por qué obtengo sólo 1 gbps entre Solaris y VMware?

¿Por qué obtengo sólo 1 gbps entre Solaris y VMware?

Tengo un host VMWare ESXi 5.1.0 (compilación 1065491) que ejecuta unSolaris (OpenIndiana)VM como invitado. He creado un vSwitch privado para el tráfico NFS entre ESXi y Solaris. La máquina virtual Solaris tiene las herramientas VMware instaladas y tiene un adaptador VMXnet3 ( vmxnet3s0) en el vSwitch privado.

Al leer un archivo directamente en la máquina virtual Solaris, ddobtengo velocidades de hasta 4,5 GB/s (44,8 gigabit/s) al leer un archivo (si mi ARC/L2ARC lo ha almacenado en caché).

Al leer el mismo archivo a través de NFS desde VMware, solo puedo obtener un máximo de 0,163 GB/s (1,131 gigabit/s)

¿Por qué existe tal diferencia? Espero cierta sobrecarga debido a TCP y NFS, así como a las redes virtuales, pero esa diferencia no es lo que yo llamaríagastos generales, parece que algo anda mal.

La CPU de la máquina virtual Solaris nunca se utiliza más del 20 %. Los promedios de carga son bajos. Mucha RAM libre en el host (no se intercambia) y la utilización de la CPU en el host está muy por debajo del 50% (normalmente alrededor del 33%). En la máquina virtual invitada, dladm show-linkprop vmxnet3s0muestra que la velocidad es 10000 (10 Gbit/seg) y la MTU es 9000 (Jumbo Frames habilitados)

Como prueba, intenté usar un vmnic E1000 "estándar" ( e1000g0) y pude habilitar tramas gigantes (9000 MTU); sin embargo, al leer el mismo archivo a través de NFS desde VMware, solo puedo obtener un máximo de 0,124 GB/s (0,992 gigabits). /seg), lo cual tiene sentido ya que la velocidad de enlace en el E1000 es de sólo 1000 megabits.

¿Por qué solo veo velocidades de transferencia de aproximadamente 1 gigabit/segundo entre VMware ESXi 5.1 y mi máquina virtual OpenIndiana Solaris?


ACTUALIZAR:Después de aplicar el ajuste de rendimiento recomendado por VFrontDe en su respuesta, ahora obtengo unos impresionantes 8-9 Gbit/s entre Solaris y una máquina virtual Linux con un vmxnet3adaptador. Obtengo ~6 Gbps al leer un archivo en caché a través de NFS en Linux:

root@iperf:/mnt/public/ISO# dd if=Test.cdr of=/dev/null bs=1024k
5884+1 records in
5884+1 records out
6170824704 bytes (6.2 GB) copied, 8.44985 s, 730 MB/s

Sin embargo, al leer ese mismo archivo en el host VMware ESXi, obtengo unos abismos de 1,91 Gbps:

/vmfs/volumes/3d77318f-82c7901a/ISO # time dd if=Windows\ 7\ Home\ Premium.cdr of=/dev/null bs=1024k
5884+1 records in
5884+1 records out
real    0m 27.85s
user    0m 17.32s
sys     0m 0.00s

6,2 GB en 27,85 segundos equivalen a 1,91 gbps.

¿Qué está causando que Vmware ESXi vmknicfuncione tan mal cuando vmxnet3es vmxnet3mucho mejor?

Respuesta1

Parece que hay algunos problemas y errores con el adaptador vmxnet3 para Solaris. Por favor, eche un vistazo a esta publicación muy detallada:http://blog.cyberexplorer.me/2013/03/improving-vm-to-vm-network-throughput.htmlEl autor pudo obtener un rendimiento mucho mejor después de algunos ajustes, pero repetir todos los pasos aquí es demasiado.

información relacionada