- 测试应该可以得到 CPU(s)、内存、I/O 和网络等主要内核区域的高水平的资源利用率。
- 测试应该充分地覆盖内核代码,以帮助支持自其结果中生成的稳定性声明。
- CPU:用于在机器的 CPU(s)上处理数据的时间。
- Memory:用于自真实存储器中读写数据的时间。
- I/O:用于自磁盘存储器读写数据的时间。
- Networking:用于自网络读写数据的时间。
- top:由 Albert D. Cahalan 维护着的一个开放源代码工具,包含于大部分 Linux 发行版本中,可用于当前的 2.4 和 2.6 内核。
- sar:另一个开放源代码工具;它由 Sebastien Godard 维护。这个工具也包含于大部分 Linux 发行版本中,可用于当前的 2.4 和 2.6 内核。
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 |
获得足够的内核覆盖率是系统压力测试的另一个职责。尽管所选的测试组合充分地利用了四种主要资源,它也有可能只是执行了内核的一小部分。因而,您应该对覆盖率进行分析以确保组合可以成为一个系统压力测试,而不是一个系统负载生成器。当前,有两个开放源代码工具可以帮助进行 Linux 内核的代码覆盖率分析:
- gcov:一个由 Linux Test Project 维护的开放源代码工具。这个工具分析内核代码的覆盖率,并报告哪些行、函数和分支被覆盖以及它们被访问了多少次。
- lcov:另一个由 IBM 开发,由 Linux Test Project 维护的开放源代码工具。这个工具由一组构建于基于文本的 gcov 输出之上的 Perl 脚本构成,以实现基于 HTML 的输出。输出包括覆盖率百分比、图表以及概述页,可以快速浏览覆盖率数据。您可以自 Linux Test Project(LTP)主页找到这两个工具(参阅 参考资料以获得链接)。
之所以要执行方法中的这最后一步,是为了对系统压力测试进行核实。在一个被认为是稳定的内核上执行压力测试;通常,发行版本中的内核可以满足这一要求,但不总是如此。要长时间地执行压力测试(推荐至少 24 个小时),同时运行 sar 工具,原因有以下两点:
- 长时间运行有助于发现组合中的所有问题,否则,在短时间的“取样测试(sniff test)”中这些问题可能会被忽略。
- sar 生成的数据构成以后测试运行中进行比较的基线。
- 您可以参阅本文在 developerWorks 全球站点上的 英文原文.
- 在 Linux Test Project 主页 下载压力测试 shell 脚本以及其他一些实用的测试。
- IBM Linux Technology Center 的使命是直接与 Linux 开发社区合作以共同促进 Linux 的成功。
- OSDL 的 Linux Kernel Scalable Test Platform(STP) 提供了一个框架,开发者可以通过它使用一个在线的性能和可扩展性套件来测试内核补丁。
- LTP 压力测试使用的工具包括 top ( procps 程序包的一部分)和 sar ( systat 的一部分)。
- 此外,LTP 压力测试还充分利用了 GNU 测试覆盖率的程序 gcov 以及它的基于 Perl 的将 gcov 结果转化为 HTML 的工具(HTMLizer) lcov。
- 内核比较:从 2.4 到 2.6 内核开发中的改进 ( developerWorks,2004 年 2 月)介绍了使得 2.6 比以前的任何内核更好的工具、测试和技术。
- 内核比较:2.4 和 2.6 上的 Web 服务( developerWorks,2004 年 2 月)描述了 IBM Linux Technology Center 的 Web 服务测试工作的成果。
- 在 改善 Linux 内核性能和可伸缩性( developerWorks,2003 年 1 月)中, Linux Technology Center Linux Kernel Performance 团队讨论了如何量化 Linux 性能以比较一段时间内的测试结果。
- 测试 Linux 的可靠性( developerWorks,2003 年 12 月)为 IBM Linux Technology Center 所做的关于 Linux 内核和其他核心 OS 组件的测试结果与分析提供了文件资料。
- Linux 内核调试器内幕( developerWorks,2003 年 6 月)向您展示了如何追踪内核的执行并检查它的内存和数据结构。
- 在 developerWorks Linux 专区 可以找到更多为 Linux 开发者准备的参考资料。
- 购买 Developer Bookstore Linux 区 打折出售的 Linux 书籍。
- 通过 developerWorks Subscription 使用最新的 IBM 工具和中间件来开发和测试您的 Linux 应用程序:您可以自 WebSphere®、DB2®、 Lotus®、Rational®和 Tivoli® 获取 IBM 软件,以及一个可以在 12 个月内使用这些软件的许可,所有的花费都比您想像的要低。
- 自 developerWorks 的 为您的 Linux 应用开发加油提速 专区下载可以运行于 Linux 之上的经过挑选的 developerWorks Subscription 产品免费测试版本,包括 WebSphere Studio Site Developer、WebSphere SDK for Web services、WebSphere Application Server、DB2 Universal Database Personal Developers Edition、Tivoli Access Manager 和 Lotus Domino Server。要更快速地开始上手,请参阅针对各个产品的 how-to 文章和技术支持。