本篇測評由電子工程世界的優秀測評者“HonestQiao ”提供。
此次的板卡測試,是米爾MYD-J1028X開發板的高速網絡數據傳輸測試體驗。
01
本次測試的主角
米爾MYD-J1028X開發板提供了5個超級給力的最高支持千兆網絡接口,具體如下:
通過查看官方的手冊,也可以詳細了解:
今天,我們就借助工具,對網絡進行一些實際測試,看看實際效果到底如何。
02
測試前的準備
首先,說一下我這邊的測試環境:
1.米爾MYD-J1028X開發板
2. MacBookPro筆記本:兩個UB3.0千兆有線網卡
3. ThinkPad筆記本:內置Intel千兆網卡
規劃連線如下:
為了得到最理想的測試速度,筆記本和開發板之間,直接連接,不經過第三方。
測試的計劃內容包括:
單網口,http下載速度測試
單網口,多進程nc并發數據傳輸測試
多網口,多進程nc并發輸出傳輸測試
多網口,多進程http下載速度測試
多機多網口,http下載速度測試
03
測試前先來做“連連看”
實際連線如下:
具體的連線關系:
- 1連接到上級路由器
- 2留空
- 3連接到7,即MacBookPro的USB千兆網卡1
- 4連接到8,即ThinkPad的Intel千兆網卡
- 5連接到6,即MacBookPro的USB千兆網卡2
- 9為USB千兆網卡1的USB,連MacBookPro
- 10為USB千兆網卡2的USB,連MacBookPro
米爾MYD-J1028X開發板系統的各網口地址對應的設備和IP地址信息如下:
- 1-eno0:192.168.1.237,為上級路由器通過DHCP分配的地址
- 2-eth1:10.10.11.11
- 3-eth2:10.10.12.12
- 4-eth3:10.10.13.13
- 5-eth4:10.10.14.14
設置eth1~4的地址使用如下的命令:
sudo ifconfig eth1 10.10.11.11 netmask 255.255.255.0
sudo ifconfig eth2 10.10.12.12 netmask 255.255.255.0
sudo ifconfig eth3 10.10.13.13 netmask 255.255.255.0
sudo ifconfig eth4 10.10.14.14 netmask 255.255.255.0
設置完成后,查看設置情況:
ifconfig | grep -E 'eth[1-4]' -A1
具體結果如下:
然后,在MacBook Pro上,設置2塊USB千兆網卡對應的IP地址:
以及ThinkPad的Windows系統中Intel千兆網卡的IP地址:
然后,在開發板上,檢測能否連通兩臺筆記本上的IP:
ping 10.10.12.102 -c 1
ping 10.10.13.103 -c 1
ping 10.10.14.104 -c 1
顯示如下表示全部連通:
在MacBook Pro和ThinkPad上,也用命令檢查一下對應開發板連接網口的IP是否連通正常:
一切連通妥當,就可以開始準備測試了。
04
安裝調試好要用到的測試工具
首先,在開發板上,安裝4款軟件:
sudo apt install nginx
sudo apt install bmon
sudo apt install axel
sudo apt install pv
- nginx用于提供web服務
- bmon用于提供網絡情況監測
- axel用于多線程下載
- pv實時監控管道數據流量
為了達到最好的性能,我們需要修改一下nginx的配置,關閉日志,并使用/dev/shm內存文件系統提供文件服務。修改nginx的主配置文件:/etc/nginx/nginx.conf,具體涉及到的設置項如下:
user www-data;
worker_processes auto;
worker_cpu_affinity auto 11;
pid /run/nginx.pid;
include /etc/nginx/modules-enabled/*.conf;
events {
worker_connections 1024;
# multi_accept on;
}
http {
#...
keepalive_requests 100000;
#...
access_log off;
#access_log /var/log/nginx/access.log;
#error_log /var/log/nginx/error.log;
error_log /dev/null;
#...
}
修改nginx默認站點/etc/nginx/sites-enabled/default 配置:
#root /var/www/html;
root /dev/shm;
修改完成后,就可以啟動nginx了:
再寫入基本測試內容到/dev/shm/index.html:
echo hello > /dev/shm/index.html
curl http://10.10.12.12/
# 應返回 hello
05
單網口,http下載速度測試
現在,我們就可以做一個基本的文件下載測試了:
- 在macOS上,使用dd指令,生一個512M的數據文件test.dat,并使用php提供隨手web服務
- 在開發板上,使用axel,下載macOS上面的數據文件,保存到/dev/shm內存文件系統
- 在macOS上,使用axl下載開發板上的test.dat文件
從上述結果可以看到,macOS上php提供的隨手web服務,不支持多線程下載,但單線程下載速度,能達到89.1MB/s而在開發板上,nginx提供的web服務,支持多線程下載,3個線程,下載速度可以達到91.9MB/s 下載都正常后,現在試用bmon指令,監控實時網絡速度:
具體指令如下:
- 開發板:bmon -bp eth2
- macOS:axel -a -n 10 http://10.10.12.12/test.dat
經過多次下載,最高帶寬可以達到975.65MBits/s,速度相當可以。
06
單網口,多進程nc并發數據傳輸測試
上面測試的相互下載的速度,下面再測試一下,通過nc命令,往開發板上傳送數據的情況。
# macOS執行:分別在三個窗口執行
pv /dev/random | nc -l 10.10.12.102 2345
pv /dev/random | nc -l 10.10.12.102 2346
pv /dev/random | nc -l 10.10.12.102 2347
# 開發板執行:分別在三個終端執行
sudo nc 10.10.12.102 2345 > /dev/null
sudo nc 10.10.12.102 2346 > /dev/null
sudo nc 10.10.12.102 2347 > /dev/null
上述命令,表示從macOS上的/dev/random生成隨機數據,然后使用nc,通過網絡,發送到開發板的/dev/null空設備中去。這樣做的好處是,不操作io設備,性能不受其他原因影響,而且數據隨機,寫入到/dev/null也永遠寫不滿,不占用實際磁盤空間。你甚至可以讓它自己跑三天三夜,看看網絡是否穩定。 下面是實際測試的結果:
我用了三個nc通道,并行進行數據的傳輸。最高傳輸帶寬,可以達到940.62MBits/s,速度還是非常理想的。
07
多網口,多進程nc并發輸出傳輸測試
之前測試的是針對一個網口的測試,現在測試同時對eth2、eth4進行數據傳輸測試:
先啟動四個nc數據傳輸進程:
針對eth2、eth4的連接,各起兩個,注意要確保對應關系。然后,通過bmon查看當前網絡帶寬情況:
合并起來的最高帶寬,為870MBits/s。
再看一下開發板的負載情況和macOS的負載情況:
可以看到,開發板上跑了4個接收進程,CPU并未占滿。
而macOS上跑了4個發送進程,結果把CPU都拉得滿滿的。
08
多網口,多進程http下載速度測試
上面是使用nc進行數據傳輸,下面我們再使用axel通過nginx下載數據,看看帶寬使用情況如何。
上面的過程,是現在開發板上,使用dd生成一個728M大小的測試文件。
然后在macOS上面,針對不同網口的ip,進行http下載測試。測試過程中,再次通過bmon查看當前網絡帶寬情況:
這次的網絡帶寬使用更加充分,合并計算,可以達到1000MBits/s了。
在測試過程中,我們也在看一下系統負載情況:
開發板上的nginx跑滿了一個cpu,而macOS上的cpu則都跑滿了。
09
多機多網口,http下載速度測試
現在要試一下,同時在macOS和Windows下載情況如何。先到ThinkPad的windows系統,使用curl命令,開兩個進程下載測試,結果如下:
合并的結果,能達到90MB/s。
然后,在macOS上面,分別使用cur從連接的兩個網卡的ip下載數據,在windows上面,同樣開兩個curl進程下載:
# macOS執行:開兩個命令行執行
curl -o test1.dat http://10.10.12.12/test.dat
curl -o test2.dat http://10.10.14.14/test.dat
# windows執行:開兩個命令行執行
curl -o test3.dat http://10.10.13.13/test.dat
curl -o test4.dat http://10.10.13.13/test.dat
測試過程中,可以看到,多個網口同時使用,帶寬的使用,將更加的充分。
總的來說,米爾MYD-J1028X開發板的千兆網絡接口,非常的給力,在高速網絡通信中,是強有力的保證。
-
開發板
+關注
關注
25文章
5087瀏覽量
97792
發布評論請先 登錄
相關推薦
評論