iperf with VMware vSphere 6.5 測試小記
Host: VMware vSphere 6.5
Hardware: Dell R730
測試環境
VMware Host -- > 10G Switch -- > VMware Host
沒有開 Jumbo Frames, 所以 MTU 是 1500 ( 因為 10G Switch 不在我的控制範圍內 )
最近因為工作的關係, 所以要來測試網路的連線速度以及效能
一開始在 VMware 的 Guest OS ( openSUSE Leap 42.3 ) 測試 iperf 的時候, 覺得頻寬沒有達到預期.
所以就決定先測試 VMware Host 彼此對連的速度
搜尋一下 google, 找到相關文章[1] , 之前找到的文章, iperf 位置是在別的地方, 所以找不到相關指令.
Server side:
確認 VMKernel 的 vSwitch 只連接上 10G 網卡
首先是關掉 VMware vSphere 的 firewall
- 這個部份因為是測試環境才這樣做, 不然的話開啟 iperf 預設的 TCP port 5001 也可以
連線到 VMware vSphere 主機 SSH ( 開啟 SSH 服務 )
透過 esxcli 指令觀察 firewall 狀況( 參考文章[2] ).
[root@localhost:~] esxcli network firewall get
Default Action: DROP
Enabled: true
Loaded: true
停用 firewall
[root@localhost:~] esxcli network firewall set --enabled false
觀察 firewall
[root@localhost:~] esxcli network firewall get
Default Action: DROP
Enabled: false
Loaded: true
複製 iperf 指令
為何要複製 iperf 指令呢?
因為如果用原來的 iperf 指令, 會出現 Operation not permitted, 連線會被拒絕
[root@localhost:~] /usr/lib/vmware/vsan/bin/iperf -s
bind failed: Operation not permitted
------------------------------------------------------------
Server listening on TCP port 5001
TCP window size: 64.0 KByte (default)
------------------------------------------------------------
所以乖乖的複製吧 :)
[root@localhost:~] cp /usr/lib/vmware/vsan/bin/iperf /usr/lib/vmware/vsan/bin/i
perf.copy
以複製出來的指令執行 iperf server mode
[root@localhost:~] /usr/lib/vmware/vsan/bin/iperf.copy -s
------------------------------------------------------------
Server listening on TCP port 5001
TCP window size: 64.0 KByte (default)
------------------------------------------------------------
Client side:
確認 VMKernel 的 vSwitch 只連接上 10G 網卡
首先是關掉 VMware vSphere 的 firewall
- 這個部份因為是測試環境才這樣做, 不然的話開啟 iperf 預設的 TCP port 5001 也可以
連線到 VMware vSphere 主機 SSH ( 開啟 SSH 服務 )
透過 esxcli 指令觀察 firewall 狀況( 參考文章[2] ).
[root@localhost:~] esxcli network firewall get
Default Action: DROP
Enabled: true
Loaded: true
停用 firewall
[root@localhost:~] esxcli network firewall set --enabled false
觀察 firewall
[root@localhost:~] esxcli network firewall get
Default Action: DROP
Enabled: false
Loaded: true
複製 iperf 指令
[root@localhost:~] cp /usr/lib/vmware/vsan/bin/iperf /usr/lib/vmware/vsan/bin/i
perf.copy
以複製出來的指令執行 iperf client mode
- -c 後面你加上 iperf server的 IP
- 每次 Client 這邊的 port 都會換
[root@localhost:~] /usr/lib/vmware/vsan/bin/iperf.copy -c YOUR_SERVER_IP
------------------------------------------------------------
Client connecting to YOUR_SERVER_IP, TCP port 5001
TCP window size: 32.5 KByte (default)
------------------------------------------------------------
[ 3] local YOUR_CLIENT_IP port 43885 connected with YOUR_SERVER_IP port 5001
[ ID] Interval Transfer Bandwidth
[ 3] 0.0-10.0 sec 4.53 GBytes 3.89 Gbits/sec
嘗試使用 -P , --parallel # number of parallel client threads to run 方式執行
[root@localhost:~] /usr/lib/vmware/vsan/bin/iperf.copy -c YOUR_SERVER_IP -P 8
- 這樣的方式就是同時用 8 個連線, 可以再測試出更多一點效能與狀況
- -w, --window #[KM] TCP window size (socket buffer size), 指定大小也是不錯的測試方式, 例如 -w 8M
- 預設是 10 秒, 但是可以藉由 -t 15 指定測試 15 秒, 然後藉由 -i 1 每秒顯示結果
可以觀察測試結果
在 10G switch 使用 電的方式( 非光纖 ), 加上 MTU 為預設的 1500, 目前我測到的速度大概是 2.X Gbits / sec
[ 4] 0.0-15.0 sec 4.32 GBytes 2.47 Gbits/sec
==========================
測試完 VMware vSphere, 接下來就是 Guest OS 部份
Guest OS: openSUSE Leap 42.2
VMware Guest 部份
使用 ethtool 網卡確認網卡速度
# 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
安裝 iperf 套件
# zypper install iperf
檢查版本
# iperf3 --version
iperf 3.0.12
Linux template 4.4.79-18.26-default #1 SMP Thu Aug 10 20:30:05 UTC 2017 (fa5a935) x86_64 x86_64 x86_64 GNU/Linux
- 在 VMware 內的 iperf 應該是 2.x 版本, iperf 3.x 版本有多一些新選項
因為是 iperf 3.x 版本, 所以指令Server side 是
- 在 5201 port listen
# iperf3 -s
-----------------------------------------------------------
Server listening on 5201
-----------------------------------------------------------
Client side 是
# iperf3 -c YOUR_SERVER_IP
Notes
- 要非常注意 Guest OS 的 VM網卡 Driver
- 剛開始測試的網卡是 Flexible
- 只有 Giga 的速度, 就算外面是 10G 也沒用 QQ, ethtool 是你的好朋友, 要先下這個指令看速度
- E1000 我測試也是 Giga 速度
- 有個 VM 範本不小心選到 Linux - other 32 bits, 只能選 Flexible and e1000, …….
- 所以一定要用 VMXNET3, 才會跟 10G 做好朋友 :)
參考
~ enjoy it
沒有留言:
張貼留言