这里针对armsom-sige7开发板的板载接口进行测试。相信能够帮助各位更加深入地了解这套板卡。
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。
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-1809msec
Disk 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-1293msec
Disk 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 ; do
EXPORT=/sys/class/gpio/export
VALUE=/sys/class/gpio/gpio$IN/value
if [ ! -f $VALUE ] ; then
echo $IN > $EXPORT
fi
done
}
out_gpio() {
for IN in $GPIOS ; do
DIR=/sys/class/gpio/gpio$IN/direction
if [ -f $DIR ] ; then
echo out > $DIR
fi
done
}
hi_gpio() {
for IN in $GPIOS ; do
VALUE=/sys/class/gpio/gpio$IN/value
if [ -f $VALUE ] ; then
echo 1 > $VALUE
fi
done
}
on_off_led()
{
ONOFF=$1
for IN in $GPIOS ; do
VALUE=/sys/class/gpio/gpio$IN/value
echo $ONOFF > $VALUE
sleep .1
fi
done
}
export_gpio
out_gpio
hi_gpio
while [ 1 ] ; do
on_off_led 0
sleep .5
on_off_led 1
sleep .5
done
在40PIN上接测试用的LED灯,最后的测试结果是LED灯逐渐亮灭。