5个千兆网口,将有什么样高速网络传输体验?——米尔MYD-J1028X开发板实测分享
扫描二维码
随时随地手机看文章
本次测试的主角
米尔MYD-J1028X开发板提供了5个超级给力的最高支持千兆网络接口,具体如下:
通过查看官方的手册,也可以详细了解:
今天,我们就借助工具,对网络进行一些实际测试,看看实际效果到底如何。
02 测试前的准备
首先,说一下我这边的测试环境:
1. 米尔MYD-J1028X开发板
2. MacBookPro笔记本:两个UB3.0千兆有线网卡
3. ThinkPad笔记本:内置Intel千兆网卡
规划连线如下:
为了得到最理想的测试速度,笔记本和开发板之间,直接连接,不经过第三方。
测试的计划内容包括:
1. 单网口,http下载速度测试
2. 单网口,多进程nc并发数据传输测试
3. 多网口,多进程nc并发输出传输测试
4. 多网口,多进程http下载速度测试
5. 多机多网口,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的地址使用如下的命令:
设置完成后,查看设置情况:
具体结果如下:
然后,在MacBook Pro上,设置2块USB千兆网卡对应的IP地址:
以及ThinkPad的Windows系统中Intel千兆网卡的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下载速度测试
现在,我们就可以做一个基本的文件下载测试了:
1. 在macOS上,使用dd指令,生一个512M的数据文件test.dat,并使用php提供随手web服务
2. 在开发板上,使用axel,下载macOS上面的数据文件,保存到/dev/shm内存文件系统
3. 在macOS上,使用axl下载开发板上的test.dat文件
从上述结果可以看到,macOS上php提供的随手web服务,不支持多线程下载,但单线程下载速度,能达到89.1MB/s而在开发板上,nginx提供的web服务,支持多线程下载,3个线程,下载速度可以达到91.9MB/s 下载都正常后,现在试用bmon指令,监控实时网络速度:
具体指令如下:
1. 开发板:bmon -bp eth2
2. 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和Windows下载情况如何。先到ThinkPad的windows系统,使用curl命令,开两个进程下载测试,结果如下:
合并的结果,能达到90MB/s。
然后,在macOS上面,分别使用cur从连接的两个网卡的ip下载数据,在windows上面,同样开两个curl进程下载:
测试过程中, 可以看到,多个网口同时使用,带宽的使用,将更加的充分。
总的来说,米尔MYD-J1028X开发板的千兆网络接口,非常的给力,在高速网络通信中,是强有力的保证。