[RK3588]armsom-sige7开发板接口性能测试

2023-12-09 06:12

本文主要是介绍[RK3588]armsom-sige7开发板接口性能测试,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

这里针对armsom-sige7开发板的板载接口进行测试。相信能够帮助各位更加深入地了解这套板卡。

  1. 2.5G网口测试

iperf是一种网络性能测试工具,它通过在两个计算机之间传输数据来测量网络带宽。其中armsom-w3作为iperf服务器,armsom-sige7作为iperf客户端。服务器监听指定的端口,iperf客户端生成特定大小的数据流,并通过TCP或UDP协议将数据发送到服务器。以下是测试结果:

客户端:

root@ArmSom-sige7:/# iperf -c 192.168.100.11l -t l0 -i l
-------------------------------------------------------------
client connecting to 192.168.100.111,TCP port 5001
TCP window size: 45.0 KByte (default)
-------------------------------------------------------------
[ 3] local 192.168.100.110 port 60564 connected with 192.168.100.1ll port 5001
[ID] IntervalTransferBandwidth
[ 3] 0.0000-1.0000 sec 275 NBytes 2.31 Gbits/sec
[ 3] 1.0000-2.0000 sec 281 NBytes 2.35 Gbits/sec
[ 3]2.0000-3.0000 sec 278 MBytes 2.34 Gbits/sec
[ 3]3.0000-4.0000 sec 280 NBytes 2.35 Gbits/sec
[ 3]4.0000-5.0000 sec 279 NBytes 2.34 Gbits/sec
[ 3]5.0000-6.0000 sec 279 MBytes 2.34 Gbits/sec
[ 3]6.0000- 7.0000 sec 276 NBytes 2.32 Gbits/sec
[ 3] 7.0000-8.0000 sec 282 NBytes 2.36 Gbits/sec
[ 3] 8.0000-9.0000 sec 279 MBytes 2.34 Gbits/sec
[ 3] 9.0000-10.0000 sec 278 MBytes 2.33 Gbits/sec
[ 3] 10.0000-10.0002 sec 256 KBytes 11.2 Gbits/sec
[ 3] 0.0000-10.0002 sec 2.72 GBytes 2.34 Gbits/sec
root@ArmSom-sige7 :/#

服务器端:

rootalinaro-alip:#iperf -s
-------------------------------------------------------------
Server listening on TCp port 5001
Tcp window size: 128 KByte (default)
-------------------------------------------------------------
[ 4] local 192.168.100.111 port 5081 connected with 192.168.108.110 port 68564
[ID]  Interval         Transfer        Bandwidth 
[ 4] 0.0000-10.0045 sec 2.72 GBytes 2.34 Gbits/sec

测试结果中,每秒的带宽大致在2.31 Gbits/sec到2.36 Gbits/sec之间波动,最后的平均带宽为2.34 Gbits/sec。

  1. eMMC读写测试

armsom-sige7的eMMC默认运行于HS400 模式,工作位宽为8。下面简单测试eMMC的读写速度,这里我们以读写ext4 文件系统为例。

写入测试:

root@ArmSom-sige7:/userdata# dd bs=1M count=512 conv=fsync if=/dev/zero of=/dev/mmcblk0p8
记录了500+0 的读入
记录了500+0 的写出
536870912字节(537 MB,512 MiB)已复制,2.57913 s,208 MB/s 

读取测试:

root@ArmSom-sige7:/userdata# dd bs=1M count=512 if=/dev/mmcblk0p8 of=/dev/null
记录了512+0 的读入
记录了512+0 的写出
536870912字节(537 MB,512 MiB)已复制,1.83596 s,292 MB/s

通过以上可以看到,eMMC的写入速度为208MB/s,读取速度为292 MB/s

注意:

非要对同一文件进行多次的读测试,我们需要先清除linux内核的缓存,可以使用如下命令

# sync; echo 3 > /proc/sys/vm/drop_caches

​ 3. nvme读写测试

PCI Express接口连接的是nvme固态硬盘,这里看下PCIe接口的速率。

写入测试:

fio --name=writetest --ioengine=sync --rw=write --bs=4k --numjobs=16 --size=1G --time_based --filename=/dev/nvme0n1

这个例子运行了一个读取(read)的测试,使用4KB块大小,16个并发作业,总共1GB的测试数据。

得到的结果如下:

Run status group 0 (all jobs):WRITE: bw=9057MiB/s (9497MB/s), 566MiB/s-606MiB/s (594MB/s-635MB/s), io=16.0GiB (17.2GB), run=1690-1809msecDisk stats (read/write):nvme0n1: ios=155/11, merge=0/123, ticks=8/9, in_queue=16, util=2.12%

读取测试:

fio --name=readtest --ioengine=sync --rw=read --bs=4k --numjobs=16 --size=1G --time_based --filename=/dev/nvme0n1

得到的结果如下:

Run status group 0 (all jobs):READ: bw=12.4GiB/s (13.3GB/s), 792MiB/s-801MiB/s (830MB/s-840MB/s), io=16.0GiB (17.2GB), run=1278-1293msecDisk stats (read/write):nvme0n1: ios=8180/0, merge=0/0, ticks=3168/0, in_queue=3167, util=91.98%

请注意,具体的性能可以因硬件、驱动程序和测试条件而有所不同,但在大多数情况下,测试结果只是表明 NVMe 存储设备在 PCIe 3.0 x4 接口上是否运行良好。

​ 4. USB3.0接口测试

用户可以在板载USB接口上连接USB鼠标、USB键盘、U盘等设备,并且支持以上设备的热插拔。这里我们以读写USB3.0接口的U盘为例

测试 USB Disk 的读速率方法:

step1. 使用 dd 命令创建一个 test 文件,用于后续的拷贝测试使用
dd if=/dev/zero of=/mnt/test bs=64K count=16K
step2.
每次执行 dd 命令前,先清缓存
echo 3 > /proc/sys/vm/drop_caches
测试 4K 数据块的读速率
dd if=/mnt/test of=/dev/null bs=4K count=256K
step3.
每次执行 dd 命令前,先清缓存
echo 3 > /proc/sys/vm/drop_caches
测试 64K 数据块的读速率
dd if=/mnt/test of=/dev/null bs=64K count=16K
step4.
每次执行 dd 命令前,先清缓存
echo 3 > /proc/sys/vm/drop_caches
测试 128K 数据块的读速率
dd if=/mnt/test of=/dev/null bs=128K count=8K
step5.
每次执行 dd 命令前,先清缓存
echo 3 > /proc/sys/vm/drop_caches
测试 512K 数据块的读速率
dd if=/mnt/test of=/dev/null bs=512K count=2K

测试结果如下:

root@ArmSom-sige7:/mnt# dd if=/dev/zero of=/mnt/test bs=64K count=16K
记录了16384+0 的读入
记录了16384+0 的写出
1073741824字节(1.1 GB,1.0 GiB)已复制,0.990046 s,1.1 GB/s
root@ArmSom-sige7:/mnt# echo 3 > /proc/sys/vm/drop_caches
[11322.812777] bash (1592): drop_caches: 3
root@ArmSom-sige7:/mnt# dd if=/mnt/test of=/dev/null bs=4K count=256K
记录了262144+0 的读入
记录了262144+0 的写出
1073741824字节(1.1 GB,1.0 GiB)已复制,1.58247 s,679 MB/s
root@ArmSom-sige7:/mnt# echo 3 > /proc/sys/vm/drop_caches
[11628.633439] bash (1592): drop_caches: 3
root@ArmSom-sige7:/mnt# dd if=/mnt/test of=/dev/null bs=64K count=16K
记录了16384+0 的读入
记录了16384+0 的写出
1073741824字节(1.1 GB,1.0 GiB)已复制,11.4648 s,93.7 MB/s
root@ArmSom-sige7:/mnt# echo 3 > /proc/sys/vm/drop_caches
[11658.589146] bash (1592): drop_caches: 3
root@ArmSom-sige7:/mnt# dd if=/mnt/test of=/dev/null bs=128K count=8K
记录了8192+0 的读入
记录了8192+0 的写出
1073741824字节(1.1 GB,1.0 GiB)已复制,11.4525 s,93.8 MB/s
root@ArmSom-sige7:/mnt# echo 3 > /proc/sys/vm/drop_caches
[11681.603100] bash (1592): drop_caches: 3
root@ArmSom-sige7:/mnt# dd if=/mnt/test of=/dev/null bs=512K count=2K
记录了2048+0 的读入
记录了2048+0 的写出
1073741824字节(1.1 GB,1.0 GiB)已复制,9.78606 s,110 MB/s

测试 USB Disk 的写速率方法:

step1.
每次执行 dd 命令前,先清缓存
echo 3 > /proc/sys/vm/drop_caches
测试 4K 数据块的写速率
dd if=/dev/zero of=/mnt/test bs=4K count=256K
step2.
rm /mnt/test
sync
echo 3 > /proc/sys/vm/drop_caches
测试 64K 数据块的写速率
dd if=/dev/zero of=/mnt/test bs=64K count=16K
step3.
rm /mnt/test
sync
echo 3 > /proc/sys/vm/drop_caches
测试 128K 数据块的写速率
dd if=/dev/zero of=/mnt/test bs=128K count=8K
step4.
rm /mnt/test
sync
echo 3 > /proc/sys/vm/drop_caches
测试 512K 数据块的写速率
dd if=/dev/zero of=/mnt/test bs=512K count=2K

测试结果如下:

root@ArmSom-sige7:/# echo 3 > /proc/sys/vm/drop_caches
[11951.413375] bash (1592): drop_caches: 3
root@ArmSom-sige7:/# dd if=/dev/zero of=/mnt/test bs=4K count=256K
记录了262144+0 的读入
记录了262144+0 的写出
1073741824字节(1.1 GB,1.0 GiB)已复制,1.15849 s,927 MB/s
root@ArmSom-sige7:/# rm /mnt/test
root@ArmSom-sige7:/# sync
root@ArmSom-sige7:/# echo 3 > /proc/sys/vm/drop_caches
[11980.713875] bash (1592): drop_caches: 3
root@ArmSom-sige7:/# dd if=/dev/zero of=/mnt/test bs=64K count=16K
记录了16384+0 的读入
记录了16384+0 的写出
1073741824字节(1.1 GB,1.0 GiB)已复制,0.988565 s,1.1 GB/s
root@ArmSom-sige7:/# rm /mnt/test
root@ArmSom-sige7:/# sync
root@ArmSom-sige7:/# echo 3 > /proc/sys/vm/drop_caches
[12007.713823] bash (1592): drop_caches: 3
root@ArmSom-sige7:/# dd if=/dev/zero of=/mnt/test bs=128K count=8K
记录了8192+0 的读入
记录了8192+0 的写出
1073741824字节(1.1 GB,1.0 GiB)已复制,0.976208 s,1.1 GB/s
root@ArmSom-sige7:/# rm /mnt/test
root@ArmSom-sige7:/# sync
root@ArmSom-sige7:/# echo 3 > /proc/sys/vm/drop_caches
[12031.596496] bash (1592): drop_caches: 3
root@ArmSom-sige7:/# dd if=/dev/zero of=/mnt/test bs=512K count=2K
记录了2048+0 的读入
记录了2048+0 的写出
1073741824字节(1.1 GB,1.0 GiB)已复制,0.985029 s,1.1 GB/s

测试结果可能会受到多种因素的影响,包括设备的硬件规格、操作系统和驱动程序的配置等。因此,测试结果只做参考,而不是绝对精确的性能度量。

Rockchip USB 3.0 Host 接口的 USB3 Disk读写速率通常在60MBps ~ 100MBps。

​ 5. WiFi带宽测试

使用iperf也可以测AP6275S的数据吞吐量,2.4G和5G测试数据如下:

2.4G测试:

root@ArmSom-sige7:/# iperf -c 192.168.100.192 -t l0 -i l
-------------------------------------------------------------
client connecting to 192.168.100.111,TCP port 5001
TCP window size: 45.0 KByte (default)
-------------------------------------------------------------
[ 3] local 192.168.100.110 port 60564 connected with 192.168.100.192 port 5001
[ID] IntervalTransferBandwidth
[ 3] 0.0000-1.0000 sec 8.38 MBytes 70.3 Mbits/sec
[ 3] 1.0000-2.0000 sec 9.62 MBytes 80.7 Mbits/sec
[ 3]2.0000-3.0000 sec 8.62 MBytes 72.4 Mbits/sec
[ 3]3.0000-4.0000 sec 9.88 MBytes 82.8 Mbits/sec
[ 3]4.0000-5.0000 sec 7.50 MBytes 62.9 Mbits/sec
[ 3]5.0000-6.0000 sec 7.62 MBytes 64.0 Mbits/sec
[ 3]6.0000- 7.0000 sec 8.38 MBytes 70.3 Mbits/sec
[ 3] 7.0000-8.0000 sec 6.25 MBytes 52.4 Mbits/sec
[ 3] 8.0000-9.0000 sec 8.00 MBytes 67.1 Mbits/sec
[ 3] 9.0000-10.0000 sec 7.38 MBytes 61.9 Mbits/sec
[ 3] 0.0000-10.000 sec 81.9 MBytes 67.8 Mbits/sec

5G测试:

root@ArmSom-sige7:/# iperf -c 192.168.100.192 -t l0 -i l
-------------------------------------------------------------
client connecting to 192.168.100.111,TCP port 5001
TCP window size: 45.0 KByte (default)
-------------------------------------------------------------
[ 3] local 192.168.100.110 port 60564 connected with 192.168.100.192 port 5001
[ID] IntervalTransferBandwidth
[ 3] 0.0000-1.0000 sec 28.38 MBytes 220.3 Mbits/sec
[ 3] 1.0000-2.0000 sec 29.62 MBytes 220.7 Mbits/sec
[ 3]2.0000-3.0000 sec 28.62 MBytes 232.4 Mbits/sec
[ 3]3.0000-4.0000 sec 29.88 MBytes 242.8 Mbits/sec
[ 3]4.0000-5.0000 sec 27.50 MBytes 222.9 Mbits/sec
[ 3]5.0000-6.0000 sec 27.62 MBytes 224.0 Mbits/sec
[ 3]6.0000- 7.0000 sec 28.38 MBytes 230.3 Mbits/sec
[ 3] 7.0000-8.0000 sec 26.25 MBytes 212.4 Mbits/sec
[ 3] 8.0000-9.0000 sec 28.00 MBytes 227.1 Mbits/sec
[ 3] 9.0000-10.0000 sec 27.38 MBytes 221.9 Mbits/sec
[ 3] 0.0000-10.0000 sec 261.9 MBytes 227.8 Mbits/sec

测试结果中,2.4G的速率是67.8Mbits/sec,5G的速率是227.8Mbits/sec。

注意:rk3588默认SDIO-CLK是150M的,测试环境可能会被外部因素干扰,真实数据应该需要在屏蔽室内进行测试。

​ 6. 40PIN连通性测试

sige7板载40针的GPIO接口,与树莓派定义的40PIN引脚是一致的,这里测试连通性是测试PIN脚的上下电。

armsom-sige7测试40PIN脚本如下:

GPIO40="139 138 115 113 109 111 112 100 148 42 41 43 44 45 150 149 63 47 114 103 110 105 0 106 107"
GPIOLED="15"
GPIOS="$GPIO40 $GPIOLED"export_gpio() {for IN in $GPIOS ; doEXPORT=/sys/class/gpio/exportVALUE=/sys/class/gpio/gpio$IN/valueif [ ! -f $VALUE ] ; thenecho $IN > $EXPORTfidone
}out_gpio() {for IN in $GPIOS ; doDIR=/sys/class/gpio/gpio$IN/directionif [ -f $DIR ] ; thenecho  out > $DIRfidone
}hi_gpio() {for IN in $GPIOS ; doVALUE=/sys/class/gpio/gpio$IN/valueif [ -f $VALUE ] ; thenecho 1 > $VALUEfidone
}on_off_led()                                                                    
{                                                                               
ONOFF=$1                                                                        for IN in $GPIOS ; doVALUE=/sys/class/gpio/gpio$IN/valueecho $ONOFF > $VALUEsleep .1                                                                fidone
}                                                                               export_gpio
out_gpio
hi_gpiowhile [ 1 ] ; doon_off_led 0                                                            sleep .5                                                                on_off_led 1                                                            sleep .5                                                                
done

在40PIN上接测试用的LED灯,最后的测试结果是LED灯逐渐亮灭。

这篇关于[RK3588]armsom-sige7开发板接口性能测试的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/472757

相关文章

Python38个游戏开发库整理汇总

《Python38个游戏开发库整理汇总》文章介绍了多种Python游戏开发库,涵盖2D/3D游戏开发、多人游戏框架及视觉小说引擎,适合不同需求的开发者入门,强调跨平台支持与易用性,并鼓励读者交流反馈以... 目录PyGameCocos2dPySoyPyOgrepygletPanda3DBlenderFife

使用Python开发一个Ditto剪贴板数据导出工具

《使用Python开发一个Ditto剪贴板数据导出工具》在日常工作中,我们经常需要处理大量的剪贴板数据,下面将介绍如何使用Python的wxPython库开发一个图形化工具,实现从Ditto数据库中读... 目录前言运行结果项目需求分析技术选型核心功能实现1. Ditto数据库结构分析2. 数据库自动定位3

Django开发时如何避免频繁发送短信验证码(python图文代码)

《Django开发时如何避免频繁发送短信验证码(python图文代码)》Django开发时,为防止频繁发送验证码,后端需用Redis限制请求频率,结合管道技术提升效率,通过生产者消费者模式解耦业务逻辑... 目录避免频繁发送 验证码1. www.chinasem.cn避免频繁发送 验证码逻辑分析2. 避免频繁

Spring Boot集成/输出/日志级别控制/持久化开发实践

《SpringBoot集成/输出/日志级别控制/持久化开发实践》SpringBoot默认集成Logback,支持灵活日志级别配置(INFO/DEBUG等),输出包含时间戳、级别、类名等信息,并可通过... 目录一、日志概述1.1、Spring Boot日志简介1.2、日志框架与默认配置1.3、日志的核心作用

PyQt5 GUI 开发的基础知识

《PyQt5GUI开发的基础知识》Qt是一个跨平台的C++图形用户界面开发框架,支持GUI和非GUI程序开发,本文介绍了使用PyQt5进行界面开发的基础知识,包括创建简单窗口、常用控件、窗口属性设... 目录简介第一个PyQt程序最常用的三个功能模块控件QPushButton(按钮)控件QLable(纯文本

基于Python开发一个图像水印批量添加工具

《基于Python开发一个图像水印批量添加工具》在当今数字化内容爆炸式增长的时代,图像版权保护已成为创作者和企业的核心需求,本方案将详细介绍一个基于PythonPIL库的工业级图像水印解决方案,有需要... 目录一、系统架构设计1.1 整体处理流程1.2 类结构设计(扩展版本)二、核心算法深入解析2.1 自

Zabbix在MySQL性能监控方面的运用及最佳实践记录

《Zabbix在MySQL性能监控方面的运用及最佳实践记录》Zabbix通过自定义脚本和内置模板监控MySQL核心指标(连接、查询、资源、复制),支持自动发现多实例及告警通知,结合可视化仪表盘,可有效... 目录一、核心监控指标及配置1. 关键监控指标示例2. 配置方法二、自动发现与多实例管理1. 实践步骤

MySQL深分页进行性能优化的常见方法

《MySQL深分页进行性能优化的常见方法》在Web应用中,分页查询是数据库操作中的常见需求,然而,在面对大型数据集时,深分页(deeppagination)却成为了性能优化的一个挑战,在本文中,我们将... 目录引言:深分页,真的只是“翻页慢”那么简单吗?一、背景介绍二、深分页的性能问题三、业务场景分析四、

MySQL 多列 IN 查询之语法、性能与实战技巧(最新整理)

《MySQL多列IN查询之语法、性能与实战技巧(最新整理)》本文详解MySQL多列IN查询,对比传统OR写法,强调其简洁高效,适合批量匹配复合键,通过联合索引、分批次优化提升性能,兼容多种数据库... 目录一、基础语法:多列 IN 的两种写法1. 直接值列表2. 子查询二、对比传统 OR 的写法三、性能分析

Linux系统性能检测命令详解

《Linux系统性能检测命令详解》本文介绍了Linux系统常用的监控命令(如top、vmstat、iostat、htop等)及其参数功能,涵盖进程状态、内存使用、磁盘I/O、系统负载等多维度资源监控,... 目录toppsuptimevmstatIOStatiotopslabtophtopdstatnmon