Parece que há alguns problemas e bugs no adaptador vmxnet3 para Solaris. Por favor, dê uma olhada neste post muito detalhado: link O autor conseguiu um rendimento muito melhor depois de alguns ajustes, mas é demais repetir todos os passos aqui.
Eu tenho um host VMWare ESXi 5.1.0 (build 1065491) executando uma VM Solaris (OpenIndiana) como convidado. Eu criei um vSwitch privado para tráfego NFS entre o ESXi e o Solaris. A VM do Solaris tem as ferramentas do VMware instaladas e possui um adaptador VMXnet3 ( vmxnet3s0
) no vSwitch particular.
A leitura de um arquivo diretamente na VM do Solaris usando dd
obtém velocidades de até 4,5 GB / s (44,8 gigabit / s) ao ler um arquivo (se ele foi armazenado em cache pelo meu ARC / L2ARC)
Lendo o mesmo arquivo pelo NFS do VMware, só posso obter um máximo de 0,163 GB / s (1,131 gigabit / s)
Por que existe essa diferença? Eu espero alguma sobrecarga devido ao TCP e NFS, bem como a rede virtual, mas essa diferença não é o que eu chamaria de sobrecarga , parece que algo está errado.
A CPU na VM do Solaris nunca é mais de 20% usada. As médias de carga são baixas. Abundância de RAM livre no host (não está trocando) e a utilização da CPU no host está bem abaixo de 50% (normalmente em torno de 33%). Na VM convidada, dladm show-linkprop vmxnet3s0
mostra que a velocidade é 10000 (10 Gbit / s) e a MTU é 9000 (Jumbo Frames ativado)
Como teste, tentei usar um vmnic "standard" E1000 ( e1000g0
) e consegui habilitar quadros jumbo (9000 MTU), mas ler o mesmo arquivo no NFS do VMware, só posso obter um máximo de 0.124 GB / seg (0,992 gigabit / seg) que faz sentido, pois a velocidade do link no E1000 é de apenas 1000 megabits.
Por que estou vendo apenas velocidades de transferência de apenas 1 gigabit / segundo entre o VMware ESXi 5.1 e a minha VM OpenIndiana Solaris?
ATUALIZAÇÃO: Depois de aplicar o ajuste de desempenho recomendado pelo VFrontDe em sua resposta, estou obtendo agora uns impressionantes 8-9 Gbit / seg entre o Solaris e uma VM Linux com um adaptador vmxnet3
. Estou recebendo ~ 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, ao ler o mesmo arquivo no host VMware ESXi, obtenho uma péssima 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 funcionam como 1,91 gbps .
O que faz com que o vmknic
do VMware ESXi tenha um desempenho tão fraco quando vmxnet3
to vmxnet3
é muito melhor?
Parece que há alguns problemas e bugs no adaptador vmxnet3 para Solaris. Por favor, dê uma olhada neste post muito detalhado: link O autor conseguiu um rendimento muito melhor depois de alguns ajustes, mas é demais repetir todos os passos aqui.
Tags networking solaris vmware-esxi