加入星计划,您可以享受以下权益:

  • 创作内容快速变现
  • 行业影响力扩散
  • 作品版权保护
  • 300W+ 专业用户
  • 1.5W+ 优质创作者
  • 5000+ 长期合作伙伴
立即加入

logo

logo

有事离开?不用担心

扫一扫继续用手机看

微信扫码
不再提醒
  • 点赞
  • 评论
  • 分享
相关视讯
  • 视讯介绍
    • 本次测试的主角
    • 测试前的准备
    • 测试前先来做“连连看”
    • 安装调试好要用到的测试工具
    • 单网口,http下载速度测试
    • 单网口,多进程nc并发数据传输测试
    • 多网口,多进程nc并发输出传输测试
    • 多网口,多进程http下载速度测试
    • 多机多网口,http下载速度测试
  • 推荐器件
  • 相关推荐
  • 电子产业图谱
申请入驻 产业图谱

5个千兆网口,将有什么样高速网络传输体验?

2022/11/18
1824
阅读需 13 分钟
加入交流群
扫码加入
获取工程师必备礼包
参与热点资讯讨论

本篇测评由电子工程世界的优秀测评者“HonestQiao ”提供。此次的板卡测试,是米尔MYD-J1028X开发板的高速网络数据传输测试体验。

本次测试的主角

米尔MYD-J1028X开发板提供了5个超级给力的最高支持千兆网络接口,具体如下:

通过查看官方的手册,也可以详细了解:

今天,我们就借助工具,对网络进行一些实际测试,看看实际效果到底如何。

测试前的准备

首先,说一下我这边的测试环境:

1. 米尔MYD-J1028X开发板

2. MacBookPro笔记本:两个UB3.0千兆有线网卡

3. ThinkPad笔记本:内置Intel千兆网卡

规划连线如下:

为了得到最理想的测试速度,笔记本和开发板之间,直接连接,不经过第三方。

测试的计划内容包括:

单网口,http下载速度测试

单网口,多进程nc并发数据传输测试

多网口,多进程nc并发输出传输测试

多网口,多进程http下载速度测试

多机多网口,http下载速度测试

测试前先来做“连连看”

实际连线如下:

具体的连线关系:

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是否连通正常:

一切连通妥当,就可以开始准备测试了。

安装调试好要用到的测试工具

首先,在开发板上,安装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

单网口,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,速度相当可以。

单网口,多进程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,速度还是非常理想的。

多网口,多进程nc并发输出传输测试

之前测试的是针对一个网口的测试,现在测试同时对eth2、eth4进行数据传输测试:

先启动四个nc数据传输进程:

针对eth2、eth4的连接,各起两个,注意要确保对应关系。

然后,通过bmon查看当前网络带宽情况:

合并起来的最高带宽,为870MBits/s。

再看一下开发板的负载情况和macOS的负载情况:

可以看到,开发板上跑了4个接收进程,CPU并未占满。

而macOS上跑了4个发送进程,结果把CPU都拉得满满的。

多网口,多进程http下载速度测试

上面是使用nc进行数据传输,下面我们再使用axel通过nginx下载数据,看看带宽使用情况如何。

上面的过程,是现在开发板上,使用dd生成一个728M大小的测试文件。

然后在macOS上面,针对不同网口的ip,进行http下载测试。

测试过程中,再次通过bmon查看当前网络带宽情况:

这次的网络带宽使用更加充分,合并计算,可以达到1000MBits/s了。

在测试过程中,我们也在看一下系统负载情况:

开发板上的nginx跑满了一个cpu,而macOS上的cpu则都跑满了。

多机多网口,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开发板的千兆网络接口,非常的给力,在高速网络通信中,是强有力的保证。

推荐器件

更多器件
器件型号 数量 器件厂商 器件描述 数据手册 ECAD模型 风险等级 参考价格 更多信息
104M06QC22 1 Cornell Dubilier Electronics Inc RC Network, Bussed, 0.5W, 22ohm, 600V, 0.1uF, Through Hole Mount, 2 Pins, RADIAL LEADED, ROHS COMPLIANT

ECAD模型

下载ECAD模型
$12.12 查看
CL05A475MO5NUNC 1 Samsung Electro-Mechanics Capacitor, Ceramic, Chip, General Purpose, 4.7uF, 16V, ±20%, X5R, 0402 (1005 mm), 0.020"T, -55º ~ +85ºC, 7" Reel
$0.12 查看
BSC028N06NSATMA1 1 Infineon Technologies AG Power Field-Effect Transistor, 23A I(D), 60V, 0.0028ohm, 1-Element, N-Channel, Silicon, Metal-oxide Semiconductor FET, GREEN, PLASTIC, SUPERSO8, TDSON-8
$2.71 查看
米尔科技

米尔科技

米尔电子,是一家专注于嵌入式处理器模组设计、研发、生产和销售于一体的国家级高新技术企业,也被评为专精特新企业。米尔电子深耕嵌入式领域10多年,致力于为企业级客户提供基于ARM、FPGA、RISC-V和AI等各种架构,稳定可靠的处理器模组,满足客户大批量产品应用部署的需求,同时为客户提供产品定制设计、行业应用解决方案和OEM的一站式服务。

米尔电子,是一家专注于嵌入式处理器模组设计、研发、生产和销售于一体的国家级高新技术企业,也被评为专精特新企业。米尔电子深耕嵌入式领域10多年,致力于为企业级客户提供基于ARM、FPGA、RISC-V和AI等各种架构,稳定可靠的处理器模组,满足客户大批量产品应用部署的需求,同时为客户提供产品定制设计、行业应用解决方案和OEM的一站式服务。 收起

查看更多

相关推荐

电子产业图谱

米尔电子,是一家专注于嵌入式处理器模组设计、研发、生产和销售于一体的国家级高新技术企业,也被评为专精特新企业。米尔电子深耕嵌入式领域10多年,致力于为企业级客户提供基于ARM、FPGA、RISC-V和AI等各种架构,稳定可靠的处理器模组,满足客户大批量产品应用部署的需求,同时为客户提供产品定制设计、行业应用解决方案和OEM的一站式服务。 米尔英文简称“MYIR”,是“Make Your Idea Real”第一个大写字母的缩写。我们的理念是“专业服务助力客户成功”,目前米尔已通过专业高效的服务,帮助全球数万家企业的产品成功上市。