||
本篇测评由电子工程世界的优秀测评者“HonestQiao ”提供。
此次的板卡测试,是米尔MYD-J1028X开发板的高速网络数据传输测试体验。
01 本次测试的主角 米尔MYD-J1028X开发板提供了5个超级给力的最高支持千兆网络接口,具体如下:
通过查看官方的手册,也可以详细了解:
今天,我们就借助工具,对网络进行一些实际测试,看看实际效果到底如何。
02 测试前的准备
首先,说一下我这边的测试环境:
1. 米尔MYD-J1028X开发板
2. MacBookPro笔记本:两个UB3.0千兆有线网卡
3. ThinkPad笔记本:内置Intel千兆网卡
规划连线如下:
为了得到最理想的测试速度,笔记本和开发板之间,直接连接,不经过第三方。
测试的计划内容包括:
单网口,http下载速度测试
单网口,多进程nc并发数据传输测试
多网口,多进程nc并发输出传输测试
多网口,多进程http下载速度测试
多机多网口,http下载速度测试
03 测试前先来做“连连看”
实际连线如下:
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
显示如下表示全部连通:
04 安装调试好要用到的测试工具
首先,在开发板上,安装4款软件:
sudo apt install nginx
sudo apt install bmon
sudo apt install axel
sudo apt install pv
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下载速度测试
06 单网口,多进程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
07 多网口,多进程nc并发输出传输测试
合并起来的最高带宽,为870MBits/s。
可以看到,开发板上跑了4个接收进程,CPU并未占满。
而macOS上跑了4个发送进程,结果把CPU都拉得满满的。
08 多网口,多进程http下载速度测试
上面是使用nc进行数据传输,下面我们再使用axel通过nginx下载数据,看看带宽使用情况如何。
上面的过程,是现在开发板上,使用dd生成一个728M大小的测试文件。
这次的网络带宽使用更加充分,合并计算,可以达到1000MBits/s了。
在测试过程中,我们也在看一下系统负载情况:
开发板上的nginx跑满了一个cpu,而macOS上的cpu则都跑满了。
09 多机多网口,http下载速度测试
合并的结果,能达到90MB/s。
# 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
测试过程中, 可以看到,多个网口同时使用,带宽的使用,将更加的充分。