2018年1月22日月曜日

ESXiの仮想ネットワークアダプタ「E1000」は、1Gbps以上の速度が出る

ESXi 6.0の仮想環境において、主に使用される仮想ネットワークアダプタ (以下、仮想NIC)は以下となっている。
※()内は、各NICのリンクスピードを示す。
  • E1000 (1Gbps)
  • E1000E (1Gbps)
  • VMXNET 3 (10Gbps)
近年の仮想環境では、10Gbps以上の物理ネットワーク接続が主流になっているので、仮想マシンのNICにおいても1Gbps以上の通信を必要とする場合は、リンクスピードが10GbpsとなっているVMXNET 3を利用する必要があると思っていた。

しかし、実際にはそうではなく、E1000のような1Gbpsの仮想NICであっても、それ以上の通信速度が出るらしい。今回、それを確かめるため、速度測定を実施してみた。

測定環境

測定環境は以下の通り。下図の①②の2パターンの仮想NICの組み合わせにて測定を行う。送信側のサーバーに巨大ファイルを配置し、sftpを使ってそのファイルをgetする際の通信速度をdstatコマンドで確認する。


通信プロトコルにsftpを使っているが、Linuxですぐに試せるファイルコピーの方法がこれしか思いつかなかったというだけの理由で選択した。sftpは通信暗号化のオーバーヘッドがありそうなので、ネットワーク計測を正確に行いたい場合は、ちょっと微妙な選択かもしれない。今回はざっくり通信速度を確認することが目的なので、問題ないものとする。

測定結果

①VMXNET 3の場合

まずはVMXNET 3の測定を行う。ethtoolコマンドでNICのリンクスピードを確認すると、10Gbpsのリンクスピードとなっていることがわかる。

# ethtool eth0
------------------------------
Settings for eth0:
        Supported ports: [ TP ]
        Supported link modes:   1000baseT/Full
                                10000baseT/Full
        Supported pause frame use: No
        Supports auto-negotiation: No
        Advertised link modes:  Not reported
        Advertised pause frame use: No
        Advertised auto-negotiation: No
        Speed: 10000Mb/s
        Duplex: Full
        Port: Twisted Pair
        PHYAD: 0
        Transceiver: internal
        Auto-negotiation: off
        MDI-X: Unknown
        Supports Wake-on: uag
        Wake-on: d
        Link detected: yes
------------------------------

sftpでファイル転送中のdstatの結果は以下の通り。黄色箇所で1Gbpsを超えていることがわかる。これはVMXNET 3が10Gbpsの仮想NICであるため、なんら不思議なことではない。

# dstat
------------------------------
----total-cpu-usage---- -dsk/total- -net/total- ---paging-- ---system--
usr sys idl wai hiq siq| read  writ| recv  send|  in   out | int   csw
 14  21  61   0   0   4|   0   104k| 376k   46M|   0     0 |9400  6232
 52  39   1   0   0   8|   0     0 |1027k  134M|   0     0 |  10k   18k
 58  30   6   0   0   6|   0     0 | 959k  159M|   0     0 |5653    22k
 56  29  11   0   0   4|   0    16k|1000k  151M|   0     0 |5149    21k
  5   4  91   0   0   0|   0     0 |  99k   16M|   0     0 | 636  2342
 38  33  23   0   0   6|   0     0 | 753k   98M|   0     0 |  19k   13k
 59  34   2   0   0   5|   0    28k|1175k  167M|   0     0 |7417    22k
 55  26  13   0   0   6|   0     0 | 973k  154M|   0     0 |4695    21k
 33  16  47   0   0   4|   0     0 | 548k   87M|   0     0 |2901    12k
  0   0 100   0   0   0|   0    16k|  60B  390B|   0     0 | 151   289
------------------------------

②E1000の場合

次に、E1000の測定を行う。NICのリンクスピードを確認すると、1Gbpsとなっていることがわかる。

# ethtool eth1
------------------------------
Settings for eth1:
        Supported ports: [ TP ]
        Supported link modes:   10baseT/Half 10baseT/Full
                                100baseT/Half 100baseT/Full
                                1000baseT/Full
        Supported pause frame use: No
        Supports auto-negotiation: Yes
        Advertised link modes:  10baseT/Half 10baseT/Full
                                100baseT/Half 100baseT/Full
                                1000baseT/Full
        Advertised pause frame use: No
        Advertised auto-negotiation: Yes
        Speed: 1000Mb/s
        Duplex: Full
        Port: Twisted Pair
        PHYAD: 0
        Transceiver: internal
        Auto-negotiation: on
        MDI-X: Unknown
        Supports Wake-on: d
        Wake-on: d
        Current message level: 0x00000007 (7)
                               drv probe link
        Link detected: yes
------------------------------

sftpでファイル転送中のdstatの結果は以下の通り。黄色箇所で1Gbpsを超えていることがわかる。VMXNET 3と比べても、遜色のない速度が出ている。

# dstat
------------------------------
----total-cpu-usage---- -dsk/total- -net/total- ---paging-- ---system--
usr sys idl wai hiq siq| read  writ| recv  send|  in   out | int   csw
 54  35   0   0   1  10|   0    28k|1047k  155M|   0     0 |6759    20k
 54  24  17   0   1   4|   0     0 | 910k  148M|   0     0 |5158    19k
 34  21  41   0   0   3|   0     0 | 625k  101M|   0     0 |3490    14k
  0   0 100   0   0   0|   0    16k|  60B  390B|   0     0 | 168   297
 17  11  68   3   0   1|3720k  140k| 148k   23M|   0     0 |3283  3515
 55  27   4   0   4  10|   0     0 |1146k  154M|   0     0 |  15k   21k
 61  29   1   0   1   8|   0    36k|1131k  177M|   0     0 |6189    23k
 53  25  12   0   1   9|   0     0 | 907k  153M|   0     0 |5137    20k
  7   4  87   0   1   1|   0     0 | 108k   18M|   0     0 | 861  2613
 ------------------------------

以上より、ESXiの仮想環境の仮想NICは、リンクスピードが通信速度の上限となるわけではなく、それ以上の通信速度が出せることがわかった。

ESXiでは仮想マシン作成時に、選択したOSに合わせて適切な仮想NICがデフォルトで選ばれるようになっているので、特に理由がなければ変更せずに使っても問題はなさそうだ。ただし、一般的にはE1000よりもVMXNET 3の方がパフォーマンスが上であると言われているため、ネットワークのパフォーマンスがシビアな環境ではVMXNET 3に変えることも考慮した方がよいだろう。

参考

・仮想マシンのネットワーク アダプタを選択する (1036627)
https://kb.vmware.com/s/article/1036627

0 件のコメント:

コメントを投稿

人気の投稿