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