LTP测试
LTP套件是由 Linux Test Project 所开发的一套系统测试套件。它基于系统资源的利用率统计开发了一个测试的组合,为系统提供足够的压力。
通过压力测试来判断系统的稳定性和可靠性。
压力测试是一种破坏性的测试,即系统在非正常的、超负荷的条件下的运行情况 。用来评估在超越最大负载的情况下系统将如何运行,是系统在正常的情况下对某种负载强度的承受能力的考验
LTP测试套件对Linux操作系统进行超长时间的测试,重点在于Linux用户环境相关的工作负荷。而并不是致力于证明缺陷。
LTP测试
测试分为两个阶段:初始测试
,压力测试
初始测试
是开始测试的必要条件。初始测试包括LTP测试套件在硬件和操作系统上成功运转,这些硬件和操作系统将用于可靠性运转
测试脚本:
1 | runalltests.sh(或runltp) |
runltp默认执行的内容与runalltests相同
1 | cd usr; ./runltp |
详细使用见:LTP使用说明
测试单元
1 | cd /usr; ./runltp -f crashme |
crashme
对系统的极端测试
测试项 | 说明 |
---|---|
f00f | x86测试 |
crash01 | 生成随机指令进行执行, 申请一块空间写随机值后,将PC跳转至此进行执行,并判断执行结果, 由于指令随机生成可能导致相同卡死,就看相同是否足够强壮,(同时也可能存成内存的泄露) |
crash02 | 随机进行系统调用(0~127), 并且系统调用的所有参数全是随机值, 由于随机的系统调用可以进行内存分配,而不会释放,也可能存在内存泄露 |
mem01 | 根据系统中可以内存的大小,随机或线性申请内存,别填充释放 |
fork12 | 尽可能的fork子进程,目的是耗尽系统的pid号,主要冲突是pid_max和内存容量 |
mm
max_map_count
1 | # cat /proc/sys/vm/max_map_count |
限制一个进程所拥有的最大内存区域(64MB)
min_free_kbytes
1 | # cat /proc/sys/vm/min_free_kbytes |
表示系统所保留空闲内存的最低限
压力测试
验证产品在系统高使用率时的健壮性。
参考
- LTP–linux稳定性测试,性能测试和压力测试
- 测试 Linux 的可靠性
- Building a Robust Linux kernel piggybacking The Linux Test Project
- [kernel]—-理解kswapd的低水位min_free_kbytes