在对 Linux 内核版本稳定性的测试中,需要明确地声明并证实为什么版本是稳定的或是不稳定的。 然而还没有被证实和证实当前现有的系统范围内的压力测试能够测试 Linux 内核整体上的稳定性。 本文给出了一个创建系统范围内 Linux 压力测试并证实其结果正确性的方法。不同的 Linux 研发者、 用户和发行版本会使用他们自己的方法来测试内核的稳定性。但是,关于他们决定运行哪些测试、覆盖的代码、 达到的压力级别等的基础信息都没有发布,这就大大降低了结果的价值。

使用实验室的机器连同来自 Linux Test Project 测试套件的测试,我们基于系统资源的利用率统计研发了一个 测试的组合,为系统提供足够的压力。我们对这个组合测试进行了分析,以确定 Linux 内核的哪些部分在测试 执行中得到了使用。然后,我们修改了组合测试,在保持期望的高强度系统压力的同时提高代码覆盖率的百分比。 最终得到的压力测试涵盖了 Linux 内核的足够多部分,有助于稳定性声明,并且有系统使用情况和内核代码覆盖情况的数据来支持他。

这一组合测试方法的四个步骤是:测试选择、系统资源利用率评价、内核代码覆盖分析连同最终的压力测试评价。

选择测试

测试选择包括选择达成两方面目的的测试:

- 测试应该能够得到 CPU(s)、内存、I/O 和网络等主要内核区域的高水平的资源利用率。

- 测试应该充分地覆盖内核代码,以帮助支持自其结果中生成的稳定性声明。

只要有可能,都要使用自动化的或易于修改的测试,以支持自动操作。自动操作能够使得测试 更快而且能够重复进行,并帮助降低人为错误的风险。选择合适的测试时需要考虑的另一个方面是, 使用能够自由发布结果的应用程式。最好是选择坚决拥护开放源代码方法 和/或 GPL 的测试和测试套件,以助于确保 发布过程的简便。

评价系统资源利用率

所选择的测试的组合必须给系统的资源带来足够的压力。Linux 内核的四个主要方面能够影响系统的 响应和执行时间:

- CPU:用于在机器的 CPU(s)上处理数据的时间。

- Memory:用于自真实存储器中读写数据的时间。

- I/O:用于自磁盘存储器读写数据的时间。

- Networking:用于自网络读写数据的时间。

测试设计者应该使用下面这两个著名的且广为应用的开放源代码 Linux 资源监控工具来评价资源利用率水平。 (请参阅本文稍后的 参考资料 以获得下载这些工具的链接。)

- top:由 Albert D. Cahalan 维护着的一个开放源代码工具, 包含于大部分 Linux 发行版本中,可用于当前的 2.4 和 2.6 内核。

- sar:另一个开放源代码工具;他由 Sebastien Godard 维护。 这个工具也包含于大部分 Linux 发行版本中,可用于当前的 2.4 和 2.6 内核。

方法中的系统资源利用率评价阶段通常需要多次尝试才能得到合适的测试组合,并得到期望水平的利用率。 当确定测试组合时,过度利用总是个至关重要的问题。例如,假如选择的组合过于受 I/O 所限,可能会 导致 CPU 的测试结果不好,反之亦然。方法的这一部分主要是大量的试验和出错,直到任何资源达到期望水平。

top 工具可用于迅速确定每个测试影响哪个资源(CPU、内存或 I/O),并实时地显示出他们使用了多少资源。 sar 工具用于收集一段时间内的网络利用率统计数据,并将任何利用率数据的快照记录到一个文档。

当选定一个组合后,测试必须长时间运行以准确评价资源的利用率。测试运行的时间长短取决于每个测试的长度。 假如多个测试同时运行,则时间必须足够长以使得这些测试中最长的那个能够完成。在这个评价过程中,sar 工 具也应该在运行。在评价运行的结论中,您应该收集并评价任何四种资源的利用率水平。

下面的例子显示了 sar 输出的 CPU、内存和网络利用率:

QUOTE:

            10:48:27 CPU %user %nice %system %iowait %idle

            10:48:28 all 0.00 0.00 0.00 0.00 100.00

            10:48:29 all 3.00 0.00 1.00 0.00 96.00

            10:48:30 all 100.00 0.00 0.00 0.00 0.00

            10:48:31 all 100.00 0.00 0.00 0.00 0.00 02:27:31

            kbmemfree kbmemused %memused kbswpfree kbswpused %swpused

            02:29:31 200948 53228 20.94 530104 0 0.00 02:31:31

            199136 55040 21.65 530104 0 0.00 02:33:31

            198824 55352 21.78 530104 0 0.00 02:35:31

            199200 54976 21.63 530104 0 0.00 02:27:31

            IFACE rxpck/s txpck/s rxbyt/s txbyt/s 02:29:31

            eth0 738.79 741.66 76025.55 136941.85 02:31:31

            eth0 743.30 744.97 76038.82 136907.77 02:33:31

            eth0 744.80 745.02 76135.53 136901.38 02:35:31

            eth0 742.35 744.34 75947.45 136864.77

清单 1. sar 的输出示例

文章整理:西部数码--专业提供域名注册虚拟主机服务
http://www.west263.com
以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!