Solaris와 VMware 간에 1Gbps만 수신되는 이유는 무엇입니까?

Solaris와 VMware 간에 1Gbps만 수신되는 이유는 무엇입니까?

VMWare ESXi 5.1.0(빌드 1065491) 호스트가 실행 중입니다.솔라리스(오픈인디애나)VM을 게스트로 사용합니다. ESXi와 Solaris 간의 NFS 트래픽을 위한 개인 vSwitch를 만들었습니다. Solaris VM에는 VMware 도구가 설치되어 있고 vmxnet3s0개인 vSwitch에 VMXnet3 어댑터( )가 있습니다.

파일 을 dd읽을 때 최대 4.5GB/초(44.8기가비트/초)의 속도를 얻습니다(ARC/L2ARC에 의해 캐시된 경우).

VMware에서 NFS를 통해 동일한 파일을 읽으면 최대 0.163GB/초(1.131기가비트/초)만 얻을 수 있습니다.

왜 그런 차이가 있습니까? TCP와 NFS는 물론 가상 네트워킹으로 인해 약간의 오버헤드가 예상되지만 그 차이는 제가 말하는 것이 아닙니다.간접비, 뭔가 문제가 있는 것 같습니다.

Solaris VM의 CPU는 20% 이상 사용되지 않습니다. 로드 평균이 낮습니다. 호스트에 여유 RAM이 많고(스왑이 아님) 호스트의 CPU 사용률이 50%보다 훨씬 낮습니다(일반적으로 약 33%). 게스트 VM에서 dladm show-linkprop vmxnet3s0속도는 10000(10Gbit/초)이고 MTU는 9000(점보 프레임 활성화)으로 표시됩니다.

테스트로 "표준" E1000 vmnic( e1000g0)를 사용하여 점보 프레임(9000 MTU)을 활성화할 수 있었지만 VMware에서 NFS를 통해 동일한 파일을 읽으면 최대 0.124GB/초(0.992기가비트)만 얻을 수 있습니다. /sec) E1000의 링크 속도가 1000MB에 불과하므로 이는 의미가 있습니다.

VMware ESXi 5.1과 OpenIndiana Solaris VM 간의 전송 속도가 약 1기가비트/초만 표시되는 이유는 무엇입니까?


업데이트:VFrontDe의 답변에서 권장하는 성능 조정을 적용한 후 이제 Solaris와 어댑터가 있는 Linux VM 사이에서 인상적인 8-9Gbit/초를 얻었습니다 vmxnet3. Linux에서 NFS를 통해 캐시된 파일을 읽으면 ~6Gbps가 발생합니다.

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

그러나 VMware ESXi 호스트에서 동일한 파일을 읽으면 1.91Gbps라는 엄청난 속도를 얻습니다.

/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

27.85초에 6.2GB가 1.91Gbps가 됩니다..

Vmware ESXi가 훨씬 더 좋을 때 vmknic성능이 저하되는 원인은 무엇입니까?vmxnet3vmxnet3

답변1

Solaris용 vmxnet3 어댑터에 몇 가지 문제와 버그가 있는 것 같습니다. 이 매우 자세한 게시물을 살펴보십시오.http://blog.cyberexplorer.me/2013/03/improving-vm-to-vm-network-throughput.html작성자는 약간의 조정 후에 훨씬 더 나은 처리량을 얻을 수 있었지만 여기에서 모든 단계를 반복하기에는 너무 많은 일입니다.

관련 정보