視頻搶先看↓↓↓
01本次測試的主角
米爾myd-j1028x開發(fā)板提供了5個超級給力的最高支持千兆網(wǎng)絡(luò)接口,具體如下:
通過查看官方的手冊,也可以詳細(xì)了解:
今天,我們就借助工具,對網(wǎng)絡(luò)進(jìn)行一些實(shí)際測試,看看實(shí)際效果到底如何。
02測試前的準(zhǔn)備
首先,說一下我這邊的測試環(huán)境:
米爾myd-j1028x開發(fā)板
macbookpro筆記本:兩個ub3.0千兆有線網(wǎng)卡
thinkpad筆記本:內(nèi)置inbbb千兆網(wǎng)卡
規(guī)劃連線如下:
為了得到最理想的測試速度,筆記本和開發(fā)板之間,直接連接,不經(jīng)過第三方。
測試的計(jì)劃內(nèi)容包括:
單網(wǎng)口,http下載速度測試
單網(wǎng)口,多進(jìn)程nc并發(fā)數(shù)據(jù)傳輸測試
多網(wǎng)口,多進(jìn)程nc并發(fā)輸出傳輸測試
多網(wǎng)口,多進(jìn)程http下載速度測試
多機(jī)多網(wǎng)口,http下載速度測試
03測試前先來做“連連看”
實(shí)際連線如下:
具體的連線關(guān)系:
1連接到上級路由器
2留空
3連接到7,即macbookpro的usb千兆網(wǎng)卡1
4連接到8,即thinkpad的inbbb千兆網(wǎng)卡
5連接到6,即macbookpro的usb千兆網(wǎng)卡2
9為usb千兆網(wǎng)卡1的usb,連 macbookpro
10為usb千兆網(wǎng)卡2的usb,連 macbookpro
米爾myd-j1028x開發(fā)板系統(tǒng)的各網(wǎng)口地址對應(yīng)的設(shè)備和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
設(shè)置eth1~4的地址使用如下的命令:
設(shè)置完成后,查看設(shè)置情況:
具體結(jié)果如下:
然后,在macbook pro上,設(shè)置2塊usb千兆網(wǎng)卡對應(yīng)的ip地址:
以及thinkpad的bbbbbbs系統(tǒng)中inbbb千兆網(wǎng)卡的ip地址:
然后,在開發(fā)板上,檢測能否連通兩臺筆記本上的ip:
顯示如下表示全部連通:
在macbook pro和thinkpad上,也用命令檢查一下對應(yīng)開發(fā)板連接網(wǎng)口的ip是否連通正常:
一切連通妥當(dāng),就可以開始準(zhǔn)備測試了。
04安裝調(diào)試好要用到的測試工具
首先,在開發(fā)板上,安裝4款軟件:
nginx用于提供web服務(wù)
bmon用于提供網(wǎng)絡(luò)情況監(jiān)測
axel用于多線程下載
pv實(shí)時監(jiān)控管道數(shù)據(jù)流量
為了達(dá)到最好的性能,我們需要修改一下nginx的配置,關(guān)閉日志,并使用/dev/shm內(nèi)存文件系統(tǒng)提供文件服務(wù)。修改nginx的主配置文件:/etc/nginx/nginx.conf,具體涉及到的設(shè)置項(xiàng)如下:
修改nginx默認(rèn)站點(diǎn)/etc/nginx/sites-enabled/default 配置:
修改完成后,就可以啟動nginx了:
再寫入基本測試內(nèi)容到/dev/shm/index.html:
05單網(wǎng)口,http下載速度測試
現(xiàn)在,我們就可以做一個基本的文件下載測試了:
在macos上,使用dd指令,生一個512m的數(shù)據(jù)文件test.dat,并使用php提供隨手web服務(wù)
在開發(fā)板上,使用axel,下載macos上面的數(shù)據(jù)文件,保存到/dev/shm內(nèi)存文件系統(tǒng)
在macos上,使用axl下載開發(fā)板上的test.dat文件
從上述結(jié)果可以看到,macos上php提供的隨手web服務(wù),不支持多線程下載,但單線程下載速度,能達(dá)到89.1mb/s而在開發(fā)板上,nginx提供的web服務(wù),支持多線程下載,3個線程,下載速度可以達(dá)到91.9mb/s 下載都正常后,現(xiàn)在試用bmon指令,監(jiān)控實(shí)時網(wǎng)絡(luò)速度:
具體指令如下:
開發(fā)板:bmon -bp eth2
macos:axel -a -n 10 http://10.10.12.12/test.dat
經(jīng)過多次下載,最高帶寬可以達(dá)到975.65mbits/s,速度相當(dāng)可以。
06單網(wǎng)口,多進(jìn)程nc并發(fā)數(shù)據(jù)傳輸測試
上面測試的相互下載的速度,下面再測試一下,通過nc命令,往開發(fā)板上傳送數(shù)據(jù)的情況。
上述命令,表示從macos上的/dev/random生成隨機(jī)數(shù)據(jù),然后使用nc,通過網(wǎng)絡(luò),發(fā)送到開發(fā)板的/dev/null空設(shè)備中去。這樣做的好處是,不操作io設(shè)備,性能不受其他原因影響,而且數(shù)據(jù)隨機(jī),寫入到/dev/null也永遠(yuǎn)寫不滿,不占用實(shí)際磁盤空間。你甚至可以讓它自己跑三天三夜,看看網(wǎng)絡(luò)是否穩(wěn)定。 下面是實(shí)際測試的結(jié)果:
我用了三個nc通道,并行進(jìn)行數(shù)據(jù)的傳輸。最高傳輸帶寬,可以達(dá)到940.62mbits/s,速度還是非常理想的。
07多網(wǎng)口,多進(jìn)程nc并發(fā)輸出傳輸測試
之前測試的是針對一個網(wǎng)口的測試,現(xiàn)在測試同時對eth2、eth4進(jìn)行數(shù)據(jù)傳輸測試:
先啟動四個nc數(shù)據(jù)傳輸進(jìn)程:
針對eth2、eth4的連接,各起兩個,注意要確保對應(yīng)關(guān)系。然后,通過bmon查看當(dāng)前網(wǎng)絡(luò)帶寬情況:
合并起來的最高帶寬,為870mbits/s。
再看一下開發(fā)板的負(fù)載情況和macos的負(fù)載情況:
可以看到,開發(fā)板上跑了4個接收進(jìn)程,cpu并未占滿。
而macos上跑了4個發(fā)送進(jìn)程,結(jié)果把cpu都拉得滿滿的。
08多網(wǎng)口,多進(jìn)程http下載速度測試
上面是使用nc進(jìn)行數(shù)據(jù)傳輸,下面我們再使用axel通過nginx下載數(shù)據(jù),看看帶寬使用情況如何。
上面的過程,是現(xiàn)在開發(fā)板上,使用dd生成一個728m大小的測試文件。
然后在macos上面,針對不同網(wǎng)口的ip,進(jìn)行http下載測試。測試過程中,再次通過bmon查看當(dāng)前網(wǎng)絡(luò)帶寬情況:
這次的網(wǎng)絡(luò)帶寬使用更加充分,合并計(jì)算,可以達(dá)到1000mbits/s了。
在測試過程中,我們也在看一下系統(tǒng)負(fù)載情況:
開發(fā)板上的nginx跑滿了一個cpu,而macos上的cpu則都跑滿了。
09多機(jī)多網(wǎng)口,http下載速度測試
現(xiàn)在要試一下,同時在macos和bbbbbbs下載情況如何。先到thinkpad的bbbbbbs系統(tǒng),使用cbbb命令,開兩個進(jìn)程下載測試,結(jié)果如下:
合并的結(jié)果,能達(dá)到90mb/s。
然后,在macos上面,分別使用cur從連接的兩個網(wǎng)卡的ip下載數(shù)據(jù),在bbbbbbs上面,同樣開兩個cbbb進(jìn)程下載:
測試過程中, 可以看到,多個網(wǎng)口同時使用,帶寬的使用,將更加的充分。
總的來說,米爾myd-j1028x開發(fā)板的千兆網(wǎng)絡(luò)接口,非常的給力,在高速網(wǎng)絡(luò)通信中,是強(qiáng)有力的保證。