用户指南
硬件性能测试指南

硬件性能测试指南

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-2025 RHILEX Technologies Inc. All rights reserved.