[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

相关文章

Nginx设置连接超时并进行测试的方法步骤

《Nginx设置连接超时并进行测试的方法步骤》在高并发场景下,如果客户端与服务器的连接长时间未响应,会占用大量的系统资源,影响其他正常请求的处理效率,为了解决这个问题,可以通过设置Nginx的连接... 目录设置连接超时目的操作步骤测试连接超时测试方法:总结:设置连接超时目的设置客户端与服务器之间的连接

Android 悬浮窗开发示例((动态权限请求 | 前台服务和通知 | 悬浮窗创建 )

《Android悬浮窗开发示例((动态权限请求|前台服务和通知|悬浮窗创建)》本文介绍了Android悬浮窗的实现效果,包括动态权限请求、前台服务和通知的使用,悬浮窗权限需要动态申请并引导... 目录一、悬浮窗 动态权限请求1、动态请求权限2、悬浮窗权限说明3、检查动态权限4、申请动态权限5、权限设置完毕后

Springboot中分析SQL性能的两种方式详解

《Springboot中分析SQL性能的两种方式详解》文章介绍了SQL性能分析的两种方式:MyBatis-Plus性能分析插件和p6spy框架,MyBatis-Plus插件配置简单,适用于开发和测试环... 目录SQL性能分析的两种方式:功能介绍实现方式:实现步骤:SQL性能分析的两种方式:功能介绍记录

Tomcat高效部署与性能优化方式

《Tomcat高效部署与性能优化方式》本文介绍了如何高效部署Tomcat并进行性能优化,以确保Web应用的稳定运行和高效响应,高效部署包括环境准备、安装Tomcat、配置Tomcat、部署应用和启动T... 目录Tomcat高效部署与性能优化一、引言二、Tomcat高效部署三、Tomcat性能优化总结Tom

基于Python开发PPTX压缩工具

《基于Python开发PPTX压缩工具》在日常办公中,PPT文件往往因为图片过大而导致文件体积过大,不便于传输和存储,所以本文将使用Python开发一个PPTX压缩工具,需要的可以了解下... 目录引言全部代码环境准备代码结构代码实现运行结果引言在日常办公中,PPT文件往往因为图片过大而导致文件体积过大,

使用DeepSeek API 结合VSCode提升开发效率

《使用DeepSeekAPI结合VSCode提升开发效率》:本文主要介绍DeepSeekAPI与VisualStudioCode(VSCode)结合使用,以提升软件开发效率,具有一定的参考价值... 目录引言准备工作安装必要的 VSCode 扩展配置 DeepSeek API1. 创建 API 请求文件2.

基于Python开发电脑定时关机工具

《基于Python开发电脑定时关机工具》这篇文章主要为大家详细介绍了如何基于Python开发一个电脑定时关机工具,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录1. 简介2. 运行效果3. 相关源码1. 简介这个程序就像一个“忠实的管家”,帮你按时关掉电脑,而且全程不需要你多做

C#使用yield关键字实现提升迭代性能与效率

《C#使用yield关键字实现提升迭代性能与效率》yield关键字在C#中简化了数据迭代的方式,实现了按需生成数据,自动维护迭代状态,本文主要来聊聊如何使用yield关键字实现提升迭代性能与效率,感兴... 目录前言传统迭代和yield迭代方式对比yield延迟加载按需获取数据yield break显式示迭

Java中的Opencv简介与开发环境部署方法

《Java中的Opencv简介与开发环境部署方法》OpenCV是一个开源的计算机视觉和图像处理库,提供了丰富的图像处理算法和工具,它支持多种图像处理和计算机视觉算法,可以用于物体识别与跟踪、图像分割与... 目录1.Opencv简介Opencv的应用2.Java使用OpenCV进行图像操作opencv安装j

Java实现任务管理器性能网络监控数据的方法详解

《Java实现任务管理器性能网络监控数据的方法详解》在现代操作系统中,任务管理器是一个非常重要的工具,用于监控和管理计算机的运行状态,包括CPU使用率、内存占用等,对于开发者和系统管理员来说,了解这些... 目录引言一、背景知识二、准备工作1. Maven依赖2. Gradle依赖三、代码实现四、代码详解五