最初运行的是一组为期 30 天的基线运转,然后增加到 60 天和 90 天的 xSeries 和 pSeries 服务器上的 Linux 测试运转。初始重点在于内核、网络和 I/O 测试。
测试工具
Linux Test Project(即 LTP;参考资料中有链接和更多信息)是 SGI、IBM、OSDL、Bull 和 Wipro Technologies 合作的项目,目的是为开放源代码团体提供测试套件,以测试 Linux 的可靠性、健壮性和稳定性。Linux Test Project 是测试 Linux 内核和相关部件的工具的集合。目的是通过使内核测试工作自动化来帮助改进 Linux 内核。
当前,在 LTP 套件中有超过 2000 个测试用例,涵盖了内核的大多数接口,比如系统调用、内存、IPC、I/O、文件系统和网络。测试套件每月都会更新发布,可以运行于多种体系结构上。已知的 LTP 测试套件测试过的体系结构有 11 种,包括 i386、ia64、PowerPC、PowerPC 64、S/390、S/390x (64bit)、MIPS、mipsel、cris、AMD Opteron 和嵌入式体系结构。我们的可靠性测试中使用的 LTP 版本是 20030524,这是当时可以获得的最新版本。
测试策略
在基线运转中有两个特别的阶段:一个 24 小时的“初始测试”,接下来是压力可靠性运转阶段,或者说是“压力测试”。
通过初始测试是开始测试的必要条件。初始测试包括 LTP 测试套件在硬件和操作系统上 24 小时的成功运转,这些硬件和操作系统将用于可靠性运转。LTP 测试套件包附带的驱动程序脚本 runalltest.sh 用于验证内核。这个脚本串行地运行一组成包的测试,并报告全部结果。也可以选择同时并行地运行几个实例。默认地,这个脚本执行:
文件系统压力测试。
硬盘 I/O 测试。
内存管理压力测试。
IPC 压力测试。
调试器测试。
命令功能的验证测试。
系统调用功能的验证测试。
压力测试可以验证产品在系统高使用率时的健壮性。作为 runalltest.sh 的补充,特别设计了一个名为 ltpstress.sh 的测试场景,在使用网络与内存管理的同时并行地运行大范围的内核组件,并在测试系统上生成高压力负荷。ltpstress.sh 也是 LTP 测试套件的一部分。这个脚本并行地运行相似的测试用例,串行地运行不同的测试用例,这样做是为了避免由于同时访问同一资源或者互相干扰而引起的间歇性故障。默认地,这个脚本执行:
NFS 压力测试。
内存管理压力测试。
文件系统压力测试。
数学 (浮点) 测试。
多线程压力测试。
硬盘 I/O 测试。
IPC (pipeio, semaphore) 测试。
系统调用功能的验证测试。
网络压力测试。
系统监控
LTP 测试套件附带的修改过的 top 工具用作系统监控工具。使用 top 可以实时地观察处理器的行为。改进的 top 工具具有附加的功能,可以将 top 结果的快照保存到文件中,并给出结果文件的平均总结,包括 CPU、内存和交换空间利用率等信息。
在我们的测试中,每 10 秒钟截取一次系统利用率(或者 top 输出文件)的快照,并保存到结果文件。另外,每天或每周要处理系统利用率的快照和 LTP 测试输出文件并得到数据分数,以确定系统在长时间运转中性能是否下降。此功能由 cron 作业和脚本控制。
测试之前
所有选定的测试系统的硬件配置尽可能相同。去掉了额外的硬件以减少潜在的硬件故障。在映像安装过程中选择最低的安全选项。预留至少 2 GB 的硬盘空间以保存 top 数据文件和 LTP 日志文件。
注意,这是一个测试场景;现实生活中,最好建议用户保持安全设置远高于最低设置。
测试期间
在测试期间系统不要受到干扰。偶尔访问一下系统以确认测试仍在进行是可以接受的。确认的手段包括使用 ps 命令、检查 top 数据和检查 LTP 日志数据。
文章来源于领测软件测试网 https://www.ltesting.net/