飞腾OS下的LTP和Cyclictest压力测试
飞腾Phytium OS下的LTP和Cyclictest压力测试流程
声明:本网络文章不包含相关方NDA协议所涉及的代码、镜像、文档资料。
参考链接:
- LTP Github仓库
LTP官方仓库,提供LTP最新Release版,给出最新、最全面的LTP使用步骤和技术细节。 - LTP-基于ARM架构的openEuler系统执行LTP测试框架用例
相比链接1,增加了第1步(安装依赖包)。飞腾OS用apt指令安装包(而非链接中的dnf)。 - Linux 实时性能测试工具——Cyclictest
LTP(Linux Test Project)测试流程
总体流程与官方仓库步骤一致,区别在于飞腾OS可能需要先用apt安装autoconf依赖包。
(1)安装依赖包
sudo apt install gcc git make pkgconf autoconf automake bison flex m4 -y
注:参考链接2中还安装了kernel-headers和glibc-headers,经测试,飞腾OS下无需安装仍能正常运行(安装则提示没有此包)。上述大多数依赖是已有的,主要是安装autoconf。
(2)下载ltp代码
git clone https://github.com/linux-test-project/ltp.git
(3)进行基础配置
cd ltp
make autotools
./configure
注:如果没有第1步安装autoconf的步骤,可能会报
make: autoheader: No such file or directory
的错误。
(4)安装ltp
make
make install
安装完成后,ltp被安装到 /opt/ltp 目录下,如下:
[root@localhost ltp]# ls /opt/ltp/
bin IDcheck.sh metadata runltp runtest scenario_groups share testcases testscripts ver_linux Version
[root@localhost ltp]#
(5)进行测试
可进行部分测试(执行1个测试套/测试脚本),也可以执行所有测试脚本:
执行一个测试套
如下 syscalls 是一个测试套,其文件在 runtest 目录下:
./runltp -f syscalls
执行一个测试脚本
如下,执行测试套 syscalls 中的一个脚本 madvise:
./runltp -f syscalls -s madvise
执行所有测试脚本
./runltp
经实测,飞腾OS运行LTP全部测试脚本大约用时6h15min。
Cyclictest测试流程
总体参考链接3。第6步有区别(先安装、配置apt-file再做make),具体见下:
Cyclictest的安装
(1) 拷贝Cyclictest的Git仓库
# git clone git://git.kernel.org/pub/scm/linux/kernel/git/clrkwllms/rt-tests.git
(2) 进入git仓库
# cd rt-tests
(3)创建一个分支(比如起名testing)
# git branch testing
(4)转到testing分支
之后步骤都不会对主分支有影响,这是在电脑上使用 git 仓库的常用方法:
# git checkout testing
(5)查看当前在哪个分支
# git branch
master
* testing
(6)安装libnuma-dev包
建议使用apt-file检测文件缺失/错误并补全,指令如下:
# sudo apt install apt-file // 安装apt-file
# sudo apt-file update // 类似apt, apt-file也需要根据系统配的源来更新一个库
# sudo apt install libnuma-dev // 使用apt 安装libnuma-dev 包
如果不执行此步,可能会有缺失 numa.h 的错误提示。
(7)make编译
# make
Cyclictest的使用
下面给出3组推荐参数的测试命令,并给出飞腾OS下的测试结果:
./cyclictest –p 80 –t5 –n
默认创建5个SCHED_FIFO策略的realtime线程,优先级80,运行周期是1000,1500,2000,2500,3000微秒。结果如下:
./cyclictest --smp -p95 -m
运行在一个四核系统,在所有内存都锁定的情况下,每个内核运行一个测量线程,它们每一个SCHED_FIFO优先级是95,锁定内存分配。结果如下:
./cyclictest -t1 -p 80 -n -i number -l10000
线程优先级为80,不同的时间间隔下的结果,其中,C:9397计数器。线程的时间间隔每达到一次,计数器加1。结果如下:
输出结果的解释如下:
缩写 | 标签 | 描述 |
---|---|---|
T | 线程(Thread) | 线程索引和线程ID |
P | 优先级(Priority) | 实时线程优先级 |
I | 间隔(Interval) | 测量延迟的线程的预期唤醒间隔(以微秒为单位) |
C | 计数(Count) | 延迟测量的次数,即迭代计数 |
Min | 最小值 | 测量到的最小延迟(以微秒为单位) |
Act | 实际值(Actual) | 最近完成迭代期间测量到的延迟(以微秒为单位) |
Max | 最大值 | 测量到的最大延迟(以微秒为单位) |
使用cyclictest --help
可详细查看输入输出参数的含义。
题外话
- 想在飞腾OS上安装arm向日葵,尝试了下面的链接,没有成功:https://guojizhuang.lanzoui.com/igS81q0ld3i
- 测试过程中避免自动锁屏息屏造成的影响,可用下列指令关闭自动锁屏息屏:
关闭息屏
gsettings set org.gnome.desktop.session idle-delay 0
最后 0 是代表关闭锁屏,将 0 替换为 60 代表 60 s后自动息屏,以此类推。
关闭锁屏
gsettings set org.gnome.desktop.screensaver lock-enabled false
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 【杭电多校比赛记录】2025“钉耙编程”中国大学生算法设计春季联赛(1)