視頻搶先看↓↓↓
01本次測試的主角
米爾myd-j1028x開發板提供了5個超級給力的最高支持千兆網絡接口,具體如下:

通過查看官方的手冊,也可以詳細了解:

今天,我們就借助工具,對網絡進行一些實際測試,看看實際效果到底如何。
02測試前的準備
首先,說一下我這邊的測試環境:
米爾myd-j1028x開發板
macbookpro筆記本:兩個ub3.0千兆有線網卡
thinkpad筆記本:內置inbbb千兆網卡
規劃連線如下:

為了得到最理想的測試速度,筆記本和開發板之間,直接連接,不經過第三方。
測試的計劃內容包括:
單網口,http下載速度測試
單網口,多進程nc并發數據傳輸測試
多網口,多進程nc并發輸出傳輸測試
多網口,多進程http下載速度測試
多機多網口,http下載速度測試
03測試前先來做“連連看”
實際連線如下:

具體的連線關系:
1連接到上級路由器
2留空
3連接到7,即macbookpro的usb千兆網卡1
4連接到8,即thinkpad的inbbb千兆網卡
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的地址使用如下的命令:

設置完成后,查看設置情況:
![]()
具體結果如下:

然后,在macbook pro上,設置2塊usb千兆網卡對應的ip地址:

以及thinkpad的bbbbbbs系統中inbbb千兆網卡的ip地址:
然后,在開發板上,檢測能否連通兩臺筆記本上的ip:

顯示如下表示全部連通:

在macbook pro和thinkpad上,也用命令檢查一下對應開發板連接網口的ip是否連通正常:


一切連通妥當,就可以開始準備測試了。
04安裝調試好要用到的測試工具
首先,在開發板上,安裝4款軟件:

nginx用于提供web服務
bmon用于提供網絡情況監測
axel用于多線程下載
pv實時監控管道數據流量
為了達到最好的性能,我們需要修改一下nginx的配置,關閉日志,并使用/dev/shm內存文件系統提供文件服務。修改nginx的主配置文件:/etc/nginx/nginx.conf,具體涉及到的設置項如下:


修改nginx默認站點/etc/nginx/sites-enabled/default 配置:

修改完成后,就可以啟動nginx了:

再寫入基本測試內容到/dev/shm/index.html:

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上的/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和bbbbbbs下載情況如何。先到thinkpad的bbbbbbs系統,使用cbbb命令,開兩個進程下載測試,結果如下:

合并的結果,能達到90mb/s。
然后,在macos上面,分別使用cur從連接的兩個網卡的ip下載數據,在bbbbbbs上面,同樣開兩個cbbb進程下載:

測試過程中, 可以看到,多個網口同時使用,帶寬的使用,將更加的充分。

總的來說,米爾myd-j1028x開發板的千兆網絡接口,非常的給力,在高速網絡通信中,是強有力的保證。










