[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

相关文章

基于 Cursor 开发 Spring Boot 项目详细攻略

《基于Cursor开发SpringBoot项目详细攻略》Cursor是集成GPT4、Claude3.5等LLM的VSCode类AI编程工具,支持SpringBoot项目开发全流程,涵盖环境配... 目录cursor是什么?基于 Cursor 开发 Spring Boot 项目完整指南1. 环境准备2. 创建

SpringBoot 多环境开发实战(从配置、管理与控制)

《SpringBoot多环境开发实战(从配置、管理与控制)》本文详解SpringBoot多环境配置,涵盖单文件YAML、多文件模式、MavenProfile分组及激活策略,通过优先级控制灵活切换环境... 目录一、多环境开发基础(单文件 YAML 版)(一)配置原理与优势(二)实操示例二、多环境开发多文件版

使用docker搭建嵌入式Linux开发环境

《使用docker搭建嵌入式Linux开发环境》本文主要介绍了使用docker搭建嵌入式Linux开发环境,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面... 目录1、前言2、安装docker3、编写容器管理脚本4、创建容器1、前言在日常开发全志、rk等不同

从原理到实战解析Java Stream 的并行流性能优化

《从原理到实战解析JavaStream的并行流性能优化》本文给大家介绍JavaStream的并行流性能优化:从原理到实战的全攻略,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的... 目录一、并行流的核心原理与适用场景二、性能优化的核心策略1. 合理设置并行度:打破默认阈值2. 避免装箱

Python实战之SEO优化自动化工具开发指南

《Python实战之SEO优化自动化工具开发指南》在数字化营销时代,搜索引擎优化(SEO)已成为网站获取流量的重要手段,本文将带您使用Python开发一套完整的SEO自动化工具,需要的可以了解下... 目录前言项目概述技术栈选择核心模块实现1. 关键词研究模块2. 网站技术seo检测模块3. 内容优化分析模

深度剖析SpringBoot日志性能提升的原因与解决

《深度剖析SpringBoot日志性能提升的原因与解决》日志记录本该是辅助工具,却为何成了性能瓶颈,SpringBoot如何用代码彻底破解日志导致的高延迟问题,感兴趣的小伙伴可以跟随小编一起学习一下... 目录前言第一章:日志性能陷阱的底层原理1.1 日志级别的“双刃剑”效应1.2 同步日志的“吞吐量杀手”

基于Java开发一个极简版敏感词检测工具

《基于Java开发一个极简版敏感词检测工具》这篇文章主要为大家详细介绍了如何基于Java开发一个极简版敏感词检测工具,文中的示例代码简洁易懂,感兴趣的小伙伴可以跟随小编一起学习一下... 目录你是否还在为敏感词检测头疼一、极简版Java敏感词检测工具的3大核心优势1.1 优势1:DFA算法驱动,效率提升10

Python开发简易网络服务器的示例详解(新手入门)

《Python开发简易网络服务器的示例详解(新手入门)》网络服务器是互联网基础设施的核心组件,它本质上是一个持续运行的程序,负责监听特定端口,本文将使用Python开发一个简单的网络服务器,感兴趣的小... 目录网络服务器基础概念python内置服务器模块1. HTTP服务器模块2. Socket服务器模块

Java慢查询排查与性能调优完整实战指南

《Java慢查询排查与性能调优完整实战指南》Java调优是一个广泛的话题,它涵盖了代码优化、内存管理、并发处理等多个方面,:本文主要介绍Java慢查询排查与性能调优的相关资料,文中通过代码介绍的非... 目录1. 事故全景:从告警到定位1.1 事故时间线1.2 关键指标异常1.3 排查工具链2. 深度剖析:

Java 与 LibreOffice 集成开发指南(环境搭建及代码示例)

《Java与LibreOffice集成开发指南(环境搭建及代码示例)》本文介绍Java与LibreOffice的集成方法,涵盖环境配置、API调用、文档转换、UNO桥接及REST接口等技术,提供... 目录1. 引言2. 环境搭建2.1 安装 LibreOffice2.2 配置 Java 开发环境2.3 配