web-dev-qa-db-ja.com

SolarisとVMwareの間で1gbpsしか得られないのはなぜですか?

VMWare ESXi 5.1.0(ビルド1065491)ホストを実行している Solaris(OpenIndiana) VMゲストとして。NFSトラフィック用のプライベートvSwitchを作成しました。 ESXiおよびSolaris。SolarisVMにはVMwareツールがインストールされており、VMXnet3アダプターがあります(vmxnet3s0)プライベートvSwitchで。

Solarisで直接ファイルから読み取るVM ddを使用)ファイルを読み取るときに最大4.5 GB /秒(44.8ギガビット/秒)の速度が得られます(私のARC/L2ARCによってキャッシュされます)

VMwareからNFS経由で同じファイルを読み取ると、最大0.163 GB /秒(1.131ギガビット/秒)しか取得できません。

なぜそのような違いがあるのですか? TCPとNFS、および仮想ネットワークによるオーバーヘッドが予想されますが、その違いは私がオーバーヘッドと呼ぶものではありません。何かがおかしいようです。

SolarisのCPU VMは20%を超えて使用されることはありません。負荷の平均は低くなります。ホスト上の十分な空きRAM(スワッピングではありません)およびホストのCPU使用率は50%をはるかに下回っています(通常は約33%)。ゲストVMでは、dladm show-linkprop vmxnet3s0は、速度が10000(10ギガビット/秒)で、MTUが9000(ジャンボフレームが有効)であることを示しています。

テストとして、「標準」のE1000 vmnic(e1000g0)そしてジャンボフレーム(9000 MTU)を有効にすることができましたが、VMwareからNFSを介して同じファイルを読み取ると、最大0.124 GB /秒(0.992ギガビット/秒)しか取得できません。これは、上のリンク速度として意味があります。 E1000はわずか1000メガビットです。

VMware ESXi5.1とOpenIndianaSolaris VMの間で転送速度が約1ギガビット/秒しかないのはなぜですか?


UPDATE:VFrontDeが推奨するパフォーマンスチューニングを彼の回答に適用した後、SolarisとLinuxの間で8〜9ギガビット/秒という印象的な結果が得られました。 VM with 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.2 GBは1.91 gbpsになります

VmwareESXiのvmknicのパフォーマンスがvmxnet3からvmxnet3はとても良いですか?

3
Josh

Solaris用のvmxnet3アダプタにはいくつかの問題とバグがあるようです。この非常に詳細な投稿をご覧ください: http://blog.cyberexplorer.me/2013/03/improving-vm-to-vm-network-throughput.html 著者は取得できましたいくつかの調整を行うとスループットが大幅に向上しますが、ここですべての手順を繰り返すには多すぎます。

2
VFrontDe