Skip to Content
🎉 RHILEX 最新版已发布。 了解更多 →
User GuideConfig Guide硬件性能测试指南

硬件性能测试指南

RHILEX 运行过程需要一定的硬件资源,资源越充足功能越优越。本指南将帮助开发者通过系统工具和基准测试评估嵌入式 Linux 设备的性能,包括 CPU、内存和存储等关键指标。

测试准备

环境准备

  • 确保设备运行稳定的嵌入式 Linux 系统。
  • 安装必要的测试工具,如 Sysbenchfio
# 安装 Sysbench sudo apt-get install sysbench # 安装 fio sudo apt-get install fio

测试规划

  • 确定需要测试的硬件部分(CPU、内存、存储)。
  • 制定测试计划,包括测试次数和期望结果。

性能测试方法

CPU 性能测试

使用 Sysbench 进行 CPU 性能测试,评估设备的计算能力。

测试步骤

  1. 运行以下命令:
sysbench cpu run
  1. 记录输出,特别注意每秒处理的事件数(events/sec)。
sysbench 1.0.20 (using system LuaJIT 2.1.0-beta3) Running the test with following options: Number of threads: 1 Initializing random number generator from current time Prime numbers limit: 10000 Initializing worker threads... Threads started! CPU speed: events per second: 1373.53 General statistics: total time: 10.0007s total number of events: 13738 Latency (ms): min: 0.66 avg: 0.73 max: 1.98 95th percentile: 0.77 sum: 9993.60 Threads fairness: events (avg/stddev): 13738.0000/0.00 execution time (avg/stddev): 9.9936/0.00

评分参照表

每秒事件数 (events/sec)评分
>= 20005
1000 - 19994
500 - 9993
100 - 4992
< 1001
无法运行或异常0

内存性能测试

使用 Sysbench 测试内存性能,评估数据处理能力。

测试步骤

  1. 运行以下命令:
sysbench memory run
  1. 记录输出,特别注意每秒读取的 MB 数量。
sysbench 1.0.20 (using system LuaJIT 2.1.0-beta3) Running the test with following options: Number of threads: 1 Initializing random number generator from current time Running memory speed test with the following options: block size: 1KiB total size: 102400MiB operation: write scope: global Initializing worker threads... Threads started! Total operations: 68123210 (6811427.69 per second) 66526.57 MiB transferred (6651.78 MiB/sec) General statistics: total time: 10.0001s total number of events: 68123210 Latency (ms): min: 0.00 avg: 0.00 max: 2.60 95th percentile: 0.00 sum: 4580.90 Threads fairness: events (avg/stddev): 68123210.0000/0.00 execution time (avg/stddev): 4.5809/0.00

评分参照表

每秒读取的 MB (MB/sec)评分
>= 5005
300 - 4994
100 - 2993
50 - 992
< 501
无法运行或异常0

存储性能测试

使用 fio 测试存储性能,评估 I/O 操作能力。

测试步骤

  1. 创建测试文件:
fio --name=readtest --rw=read --bs=1M --size=1G --runtime=30 --time_based --group_reporting
  1. 记录输出,特别注意 IOPS(每秒 I/O 操作数)。
readtest: (g=0): rw=read, bs=(R) 1024KiB-1024KiB, (W) 1024KiB-1024KiB, (T) 1024KiB-1024KiB, ioengine=psync, iodepth=1 fio-3.28 Starting 1 process readtest: Laying out IO file (1 file / 1024MiB) Jobs: 1 (f=1): [R(1)][100.0%][r=304MiB/s][r=304 IOPS][eta 00m:00s] readtest: (groupid=0, jobs=1): err= 0: pid=29810: Fri Oct 25 22:27:46 2024 read: IOPS=301, BW=302MiB/s (317MB/s)(9057MiB/30003msec) clat (usec): min=2724, max=21507, avg=3310.38, stdev=325.70 lat (usec): min=2724, max=21507, avg=3310.55, stdev=325.73 clat percentiles (usec): | 1.00th=[ 2802], 5.00th=[ 2933], 10.00th=[ 3163], 20.00th=[ 3195], | 30.00th=[ 3195], 40.00th=[ 3228], 50.00th=[ 3261], 60.00th=[ 3294], | 70.00th=[ 3359], 80.00th=[ 3425], 90.00th=[ 3556], 95.00th=[ 3720], | 99.00th=[ 4178], 99.50th=[ 4490], 99.90th=[ 5276], 99.95th=[ 6325], | 99.99th=[21627] bw ( KiB/s): min=278528, max=354304, per=99.97%, avg=309023.95, stdev=13012.16, samples=59 iops : min= 272, max= 346, avg=301.73, stdev=12.67, samples=59 lat (msec) : 4=98.32%, 10=1.66%, 20=0.01%, 50=0.01% cpu : usr=0.06%, sys=3.95%, ctx=153978, majf=0, minf=266 IO depths : 1=100.0%, 2=0.0%, 4=0.0%, 8=0.0%, 16=0.0%, 32=0.0%, >=64=0.0% submit : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.0%, >=64=0.0% complete : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.0%, >=64=0.0% issued rwts: total=9057,0,0,0 short=0,0,0,0 dropped=0,0,0,0 latency : target=0, window=0, percentile=100.00%, depth=1 Run status group 0 (all jobs): READ: bw=302MiB/s (317MB/s), 302MiB/s-302MiB/s (317MB/s-317MB/s), io=9057MiB (9497MB), run=30003-30003msec

评分参照表

IOPS评分
>= 50005
3000 - 49994
1000 - 29993
500 - 9992
< 5001
无法运行或异常0

结果分析

为了根据评分分数反馈性能指标的高低,可以设计一个综合评分公式。这个公式将结合各个性能指标的分数,计算出一个综合性能得分,并根据该得分提供相应的性能评级。下面是一个示例设计:

综合性能评分计算公式

  1. 定义各项指标评分

    • CPUScore
    • MemoryScore
    • StorageScore
  2. 计算总分

Go
TotalScore = (CPUScore * CPUWeight) + (MemoryScore * MemoryWeight) + (StorageScore * StorageWeight)
  1. 计算性能评级
    • 将总分与预定义的评分范围进行对比,得出性能评级。

合理的权重设置可以根据设备的实际应用场景和性能需求进行调整。以下是一组建议的权重,适用于一般的嵌入式 Linux 设备评估:

权重建议

指标权重
CPUScore0.4
MemoryScore0.3
StorageScore0.3

权重解释

  • CPUScore (0.4): CPU 通常是性能的关键因素,尤其是在需要处理大量计算的应用中。因此,给予 CPU 更高的权重。
  • MemoryScore (0.3): 内存容量和带宽直接影响设备的处理速度和响应能力,因此给予适当的权重。
  • StorageScore (0.3): 存储性能(读写速度)对于数据密集型应用同样重要,因此也给予适当的权重。

说明

  1. 分数范围

    • 13-15分:优秀
    • 10-12分:良好
    • 7-9分:中等
    • 4-6分:较差
    • 0-3分:
  2. 评级反馈

    • 根据综合得分,反馈出相应的性能评级,帮助开发者快速了解设备的性能水平。

0-3 分的硬件可能不太适合运行,根据实际情况评估。

© 2023-2026 RHILEX Technologies Inc. All rights reserved.