RTEval是一个python应用程序,用于测试和分析实时系统的实时性,RTEval首先在待测试的目标系统上运行两个系统负载,分别为hackbench和解压缩并编译一份linux kernel的源码,与此同时,运行cyclictest对实时系统进行测试。
当运行设定时间后,系统负载和cyclictest同时停止,RTEval输出cyclictest的测试结果,并对其进行分析,并将分析结果输出至一xml文件。
RTEval的配置项在rteval.conf和Makefile中,比如duration,在makefile中默认值为10s,可以修改为10m,或10h,1d。
RTEval是python代码,就不做具体的代码分析了,操作步骤如下:
- 根据链接(https://wiki.linuxfoundation.org/realtime/documentation/howto/tools/rteval)指导安装所需工具
- sudo make install
- 下载kernel的tarfile,作为负载使用:wget -P loadsource https://www.kernel.org/pub/linux/kernel/v5.x/linux-5.13.2.tar.xz
- 运行命令:sudo make runit
运行10分钟,结果如下:
===================================================================
rteval (v3.2) report
-------------------------------------------------------------------
Test run: 2021-11-24 10:39:26
Run time: 0 days 0h 10m 4s
Tested node: kylin-Lenovo
Model: LENOVO - YangTianT4900v-00
BIOS version: LENOVO (ver: FCKT65AUS, rev :1.65, release date: 01/12/2015)
CPU cores: 4 (online: 4)
NUMA Nodes: 1
Memory: 3849.008 MB
Kernel: 5.6.19-rt11-rtsl+ (RT enabled)
Base OS: unknown
Architecture: x86_64
Clocksource: tsc
Available: tsc hpet acpi_pm
System load:
Load average: 164.73
Executed loads:
- kcompile: make O=/home/kylin/workspace/preempt-rt-tools/rteval/run/rteval-build/node0 -C /home/kylin/workspace/preempt-rt-tools/rteval/run/rteval-build/linux-5.13.2 -j8;
- hackbench: hackbench -P -g 12 -l 1000 -s 1000
Cmdline: BOOT_IMAGE=/boot/vmlinuz-5.6.19-rt11-rtsl+ root=UUID=bcdde20b-bd96-46d6-9768-782250a40354 ro text
Measurement profile 1: With loads, measurements in parallel
Latency test
Started: 2021-11-24 10:40:08.859794
Stopped: 2021-11-24 10:50:09.708923
Command: cyclictest -i100 -qmu -h 2000 -p95 -t -a
System:
Statistics:
Samples: 24018800
Mean: 4.824280730094759us
Median: 4us
Mode: 4us
Range: 98us
Min: 2us
Max: 100us
Mean Absolute Dev: 0.8510071610745197us
Std.dev: 1.4468865694910855us
CPU core 0 Priority: 95
Statistics:
Samples: 6004494
Mean: 4.716586276878618us
Median: 4us
Mode: 4us
Range: 66us
Min: 2us
Max: 68us
Mean Absolute Dev: 0.7897551975536091us
Std.dev: 1.212103811570355us
CPU core 1 Priority: 95
Statistics:
Samples: 6004423
Mean: 5.052087436211606us
Median: 0.0us
Mode: 4us
Range: 98us
Min: 2us
Max: 100us
Mean Absolute Dev: 0.9774752340214017us
Std.dev: 1.7828885840668833us
CPU core 2 Priority: 95
Statistics:
Samples: 6004495
Mean: 4.640978133881367us
Median: 4us
Mode: 4us
Range: 64us
Min: 2us
Max: 66us
Mean Absolute Dev: 0.7809236098054448us
Std.dev: 1.1641951771130483us
CPU core 3 Priority: 95
Statistics:
Samples: 6005388
Mean: 4.887464390310834us
Median: 0.0us
Mode: 4us
Range: 85us
Min: 2us
Max: 87us
Mean Absolute Dev: 0.8303536451093279us
Std.dev: 1.50651484776196us
===================================================================
[DEBUG] exiting with exit code: 0
** COLLECTED WARNINGS **
# SMBIOS implementations newer than version 2.7 are not
# fully supported by this version of dmidecode.
** END OF WARNINGS **
这里面我们最关注的是每个cpu下面的max值,表示cyclictest在当前负载下的最大延时,loadavg也需要关注一下,表示运行cyclictest时系统的负载状况。
更具体的报告见./run/.../summary.xml