[vSphere/CentOS6.x] VMXNET3 & E1000 성능 테스트
VMXNET3 & E1000 성능 테스트
VMware Tools의 yum 설치 시도 관련성에 대해 다시 한 번 깊이 고려해 봅시다.
vmxnet3와 e1000으로 기준을 얻어보세요.
VM 준비
CentOS6.6에 각각 vmxnet3와 e1000대의 컴퓨터가 준비되어 있습니다.
또한 Linux(CentOS6.6 현재)에 대해kernel에 vmxnet3의 드라이버 상태가 포함되어 있습니다.
따라서 vmxnet3를 먼저 이용하려면 가상 머신을 만들 때 NIC에서 vmxnet3를 선택하여 배치하면 기본적으로 불러옵니다.
$ modinfo vmxnet3
filename: /lib/modules/2.6.32-504.16.2.el6.x86_64/kernel/drivers/net/vmxnet3/vmxnet3.ko
version: 1.1.30.0-k
license: GPL v2
description: VMware vmxnet3 virtual NIC driver
author: VMware, Inc.
srcversion: 502C6D11BE2EF75FC4A1B5F
alias: pci:v000015ADd000007B0sv*sd*bc*sc*i*
depends:
vermagic: 2.6.32-504.16.2.el6.x86_64 SMP mod_unload modversions
네트워크 데이텀 가져오기
이번에는 iperf3로 네트워크의 기준을 얻으려고 한다.
소스 컴파일이 번거롭기 때문에 EPEL에서 배포하는 RPM을 이용합니다.
http://dl.fedoraproject.org/pub/epel/6/x86_64/repoview/iperf3.html
EPEL 저장소 배포
저장소를 추가합니다.
CentOS의 경우 외부 패키지에서 저장소를 설치할 수 있습니다.
$ yum list | grep epel-release.noarch
epel-release.noarch 6-8 extras
$ sudo yum install -y epel-release.noarch
추가되었는지 확인합니다.또한 이번에는 iperf3를 설치하기 위해 가져온 것이기 때문에 기본값은 "enabled=0 (무효)"입니다.
[epel]
name=Extra Packages for Enterprise Linux 6 - $basearch
#baseurl=http://download.fedoraproject.org/pub/epel/6/$basearch
mirrorlist=https://mirrors.fedoraproject.org/metalink?repo=epel-6&arch=$basearch
failovermethod=priority
enabled=0
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-6
[epel-debuginfo]
name=Extra Packages for Enterprise Linux 6 - $basearch - Debug
#baseurl=http://download.fedoraproject.org/pub/epel/6/$basearch/debug
mirrorlist=https://mirrors.fedoraproject.org/metalink?repo=epel-debug-6&arch=$basearch
failovermethod=priority
enabled=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-6
gpgcheck=1
[epel-source]
name=Extra Packages for Enterprise Linux 6 - $basearch - Source
#baseurl=http://download.fedoraproject.org/pub/epel/6/SRPMS
mirrorlist=https://mirrors.fedoraproject.org/metalink?repo=epel-source-6&arch=$basearch
failovermethod=priority
enabled=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-6
gpgcheck=1
가방 찾기
"enabled=0"저장소는 "--enablerepo"옵션을 사용하여 임시로 사용할 수 있습니다.
$ yum list --enablerepo=epel | grep -i iperf3
iperf3.i686 3.0.10-1.el6 epel
iperf3.x86_64 3.0.10-1.el6 epel
iperf3-devel.i686 3.0.10-1.el6 epel
iperf3-devel.x86_64 3.0.10-1.el6 epel
설치
$ sudo yum install --enablerepo=epel iperf3
데이텀 구성
vmxnet3와 e1000 가상 기기와 서로 다른 위치에 있는 서버에 각각 iperf3를 설치합니다.다음은 서로 다른 패턴으로 동작한다.
※ 그림의 IP 주소는 가상 주소입니다.
iperf3 사용 방법
iperf2는 뒤로 호환되지 않으니 주의해야 합니다.
즉, iperf2를 설치한 기계와 iperf3를 설치한 기계 간의 상호 통신을 테스트할 수 없다는 것이다.iperf의 버전은 통일이 필요합니다.
기본적인 사용 방법 iperf2와 3은 모두 같다(옵션에 차이가 있음)
http://www.unix-power.net/linux/iperf.html
http://nextdeveloper.hatenablog.com/entry/2014/02/07/120719
실행 결과
기본적으로 10초 동안 데이터를 테스트했습니다.
(※ iperf Server 측면 출력 보고서)
vm(E1000)
$ iperf3 -s
-----------------------------------------------------------
Server listening on 5201
-----------------------------------------------------------
Accepted connection from vm_IPADDR(E1000), port 41993
[ 5] local 172.31.6.XX port 5201 connected to vm_IPADDR(E1000) port 41994
[ ID] Interval Transfer Bandwidth
[ 5] 0.00-1.00 sec 20.9 MBytes 175 Mbits/sec
[ 5] 1.00-2.00 sec 14.9 MBytes 125 Mbits/sec
[ 5] 2.00-3.00 sec 12.4 MBytes 104 Mbits/sec
[ 5] 3.00-4.00 sec 13.6 MBytes 114 Mbits/sec
[ 5] 4.00-5.00 sec 14.3 MBytes 120 Mbits/sec
[ 5] 5.00-6.00 sec 12.6 MBytes 106 Mbits/sec
[ 5] 6.00-7.00 sec 14.5 MBytes 122 Mbits/sec
[ 5] 7.00-8.00 sec 12.0 MBytes 101 Mbits/sec
[ 5] 8.00-9.00 sec 9.32 MBytes 78.2 Mbits/sec
[ 5] 9.00-10.00 sec 10.7 MBytes 89.6 Mbits/sec
[ 5] 10.00-10.03 sec 239 KBytes 72.8 Mbits/sec
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval Transfer Bandwidth Retr
[ 5] 0.00-10.03 sec 138 MBytes 116 Mbits/sec 64 sender
[ 5] 0.00-10.03 sec 136 MBytes 113 Mbits/sec receiver
vm(VMXNET3)$ iperf3 -s
-----------------------------------------------------------
Server listening on 5201
-----------------------------------------------------------
Accepted connection from vm_IPADDR(VMXNET3), port 52894
[ 5] local 172.31.6.XX port 5201 connected to vm_IPADDR(VMXNET3) port 52895
[ ID] Interval Transfer Bandwidth
[ 5] 0.00-1.00 sec 27.6 MBytes 232 Mbits/sec
[ 5] 1.00-2.00 sec 15.3 MBytes 128 Mbits/sec
[ 5] 2.00-3.00 sec 16.4 MBytes 137 Mbits/sec
[ 5] 3.00-4.00 sec 14.8 MBytes 124 Mbits/sec
[ 5] 4.00-5.00 sec 15.4 MBytes 129 Mbits/sec
[ 5] 5.00-6.00 sec 15.3 MBytes 128 Mbits/sec
[ 5] 6.00-7.00 sec 13.6 MBytes 114 Mbits/sec
[ 5] 7.00-8.00 sec 15.1 MBytes 127 Mbits/sec
[ 5] 8.00-9.00 sec 16.6 MBytes 140 Mbits/sec
[ 5] 9.00-10.00 sec 10.7 MBytes 89.6 Mbits/sec
[ 5] 10.00-10.04 sec 426 KBytes 92.3 Mbits/sec
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval Transfer Bandwidth Retr
[ 5] 0.00-10.04 sec 165 MBytes 138 Mbits/sec 82 sender
[ 5] 0.00-10.04 sec 161 MBytes 135 Mbits/sec receiver
이 Average라면 VMXNET3에 트래픽이 있더라도1분 이내에 테스트를 실시한 결과는 다음과 같다.
(※ iperf Client 측면 출력 보고서)
vm(E1000)
$ iperf3 -c remoteServer_IPADDR -V -t 60 -i 10
iperf 3.0.10
Linux vm-test3 2.6.32-504.16.2.el6.x86_64 #1 SMP Wed Apr 22 06:48:29 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux
Time: Fri, 01 May 2015 02:18:00 GMT
Connecting to host remoteServer_IPADDR, port 5201
Cookie: vm-test3.1430446680.734558.68d0d84b1
TCP MSS: 1448 (default)
[ 4] local vm_IPADDR(E1000) port 42001 connected to remoteServer_IPADDR port 5201
Starting Test: protocol: TCP, 1 streams, 131072 byte blocks, omitting 0 seconds, 60 second test
[ ID] Interval Transfer Bandwidth Retr Cwnd
[ 4] 0.00-10.00 sec 217 MBytes 182 Mbits/sec 54 170 KBytes
[ 4] 10.00-20.00 sec 181 MBytes 152 Mbits/sec 29 115 KBytes
[ 4] 20.00-30.00 sec 168 MBytes 141 Mbits/sec 30 122 KBytes
[ 4] 30.00-40.00 sec 181 MBytes 152 Mbits/sec 15 165 KBytes
[ 4] 40.00-50.00 sec 192 MBytes 161 Mbits/sec 31 134 KBytes
[ 4] 50.00-60.00 sec 132 MBytes 111 Mbits/sec 53 129 KBytes
- - - - - - - - - - - - - - - - - - - - - - - - -
Test Complete. Summary Results:
[ ID] Interval Transfer Bandwidth Retr
[ 4] 0.00-60.00 sec 1.05 GBytes 150 Mbits/sec 212 sender
[ 4] 0.00-60.00 sec 1.04 GBytes 149 Mbits/sec receiver
CPU Utilization: local/sender 1.0% (0.0%u/1.0%s), remote/receiver 3.5% (0.0%u/3.5%s)
iperf Done.
vm(VMXNET3)$ iperf3 -c remoteServer_IPADDR-V -t 60 -i 10
iperf 3.0.10
Linux vm-test4 2.6.32-504.16.2.el6.x86_64 #1 SMP Wed Apr 22 06:48:29 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux
Time: Fri, 01 May 2015 02:19:18 GMT
Connecting to host remoteServer_IPADDR, port 5201
Cookie: vm-test4.1430446758.532814.39107b692
TCP MSS: 1448 (default)
[ 4] local vm_IPADDR(VMXNET3) port 52901 connected to remoteServer_IPADDR port 5201
Starting Test: protocol: TCP, 1 streams, 131072 byte blocks, omitting 0 seconds, 60 second test
[ ID] Interval Transfer Bandwidth Retr Cwnd
[ 4] 0.00-10.00 sec 158 MBytes 132 Mbits/sec 46 189 KBytes
[ 4] 10.00-20.00 sec 158 MBytes 132 Mbits/sec 23 209 KBytes
[ 4] 20.00-30.00 sec 202 MBytes 170 Mbits/sec 22 238 KBytes
[ 4] 30.00-40.00 sec 204 MBytes 171 Mbits/sec 33 219 KBytes
[ 4] 40.00-50.00 sec 179 MBytes 150 Mbits/sec 10 197 KBytes
[ 4] 50.00-60.00 sec 196 MBytes 165 Mbits/sec 15 130 KBytes
- - - - - - - - - - - - - - - - - - - - - - - - -
Test Complete. Summary Results:
[ ID] Interval Transfer Bandwidth Retr
[ 4] 0.00-60.00 sec 1.07 GBytes 153 Mbits/sec 149 sender
[ 4] 0.00-60.00 sec 1.07 GBytes 153 Mbits/sec receiver
CPU Utilization: local/sender 0.5% (0.0%u/0.5%s), remote/receiver 3.1% (0.9%u/2.2%s)
iperf Done.
1분의 평균은 큰 차이가 없다.동일한 클러스터에 속한 VM 간의 경우 문제가 없지만 External 통신의 경우 불안정합니다(*´_)ω・`)゜+.゜
결과
통신 경로에 병목이 되는 부분도 있고 엄밀한 성능 측정도 할 수 없지만 극단적인 차이가 없기 때문에 좋아하지요.
하지만kernel에 포함되면 vmxnet3가 좋습니다.
이번에는 CentOS6입니다.X만 비교했기 때문에 Windows 계열은 다를 수 있습니다.
Reference
이 문제에 관하여([vSphere/CentOS6.x] VMXNET3 & E1000 성능 테스트), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/rocca0504/items/a345efa6c5391608bd15텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)