Por que estou obtendo apenas 1gbps entre Solaris e VMware?

Por que estou obtendo apenas 1gbps entre Solaris e VMware?

Eu tenho um host VMWare ESXi 5.1.0 (build 1065491) executando umSolaris (OpenIndiana)VM como convidado. Criei um vSwitch privado para tráfego NFS entre ESXi e Solaris. A VM Solaris possui as ferramentas VMware instaladas e possui um adaptador VMXnet3 ( vmxnet3s0) no vSwitch privado.

Lendo de um arquivo diretamente na VM Solaris usando, ddobtenho velocidades de até 4,5 GB/s (44,8 gigabit/s) ao ler um arquivo (se ele tiver sido armazenado em cache pelo meu ARC/L2ARC)

Lendo o mesmo arquivo via NFS do VMware, só consigo obter no máximo 0,163 GB/s (1,131 gigabit/s)

Por que existe essa diferença? Espero alguma sobrecarga devido ao TCP e NFS, bem como à rede virtual, mas essa diferença não é o que eu chamariaa sobrecarga, parece que algo está errado.

A CPU na VM Solaris nunca é usada em mais de 20%. As médias de carga são baixas. Muita RAM livre no host (não há troca) e a utilização da CPU no host está bem abaixo de 50% (normalmente em torno de 33%). Na VM convidada, dladm show-linkprop vmxnet3s0mostra que a velocidade é 10.000 (10 Gbit/seg) e o MTU é 9.000 (Jumbo Frames habilitados)

Como teste tentei usar um E1000 vmnic "padrão" ( e1000g0) e consegui habilitar jumbo frames (9000 MTU), porém lendo o mesmo arquivo via NFS do VMware, só consigo obter no máximo 0,124 GB/s (0,992 gigabit /s), o que faz sentido, já que a velocidade do link no E1000 é de apenas 1.000 megabits.

Por que estou vendo apenas velocidades de transferência de cerca de 1 gigabit/segundo entre o VMware ESXi 5.1 e minha VM OpenIndiana Solaris?


ATUALIZAR:Depois de aplicar o ajuste de desempenho recomendado por VFrontDe em sua resposta, agora estou obtendo impressionantes 8-9 Gbit/s entre Solaris e uma VM Linux com um vmxnet3adaptador. Estou obtendo ~ 6 Gbps lendo um arquivo em cache via NFS no 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

No entanto, lendo o mesmo arquivo no host VMware ESXi, recebo péssimos 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 em 27,85 segundos equivalem a 1,91 gbps.

O que está fazendo com que o VMware ESXi vmknictenha um desempenho tão ruim quando vmxnet3é vmxnet3muito melhor?

Responder1

Parece que há alguns problemas e bugs com o adaptador vmxnet3 para Solaris. Por favor, dê uma olhada nesta postagem muito detalhada:http://blog.cyberexplorer.me/2013/03/improving-vm-to-vm-network-throughput.htmlO autor conseguiu obter um rendimento muito melhor após alguns ajustes, mas é demais repetir todas as etapas aqui.

informação relacionada