VolanoMark 基准测试程序在由 20 人组成的小组中创建客户机连接,测量服务器向组依次轮流广播所有客户机的消息需花多长时间。在回送测试最后,它会以平均每秒发送的消息数作为一个分数形成报告。在网络模式中,用客户机和服务器之间的连接数来度量。该基准测试程序所着重的 Linux 内核组件包括调度程序、信号和 TCP/IP。

图" 2 中所显示的是回送模式下的 VolanoMark 基准测试程序结果。另外还描述了所使用的硬件和软件配置以及该基准测试程序的目标。在实现这个目标的过程中,我们与 Linux 内核开发团队建立了紧密的协作关系。我们已经解决的一些问题在以下方面取得了改善:添加了 O(1) 调度程序、SMP 可伸缩计时器、可调整优先级的优先权和软亲缘性内核补丁。正如图中所示,对于这个基准测试程序,我们超出了目标;然而有一些与 Linux 内核组件相关以及与 Java 相关的突出问题,我们正在解决这些问题,我们相信会进一步改进该基准测试程序的性能。
请注意,SPECweb99 基准测试程序只用作研究,不作它用,它的规则有些变化:运行它的硬件不符合 SPEC 公共可用性准则。该机器是一台工程样机。access_log 不会保存所有日志。虽然会写日志,但每 200 秒会删除一次日志。
该基准测试程序显示了对 Web 服务器所要求的工作负载。这个工作负载请求 70% 的静态页面和 30% 的简单动态页面。Web 页面的大小从 102 字节到 921,000 字节不等。动态内容模拟了循环播放的 GIF 广告。没有 SSL 内容。SPECweb99 的意义重大,因为 Web 服务(尤其是使用 Apache 的服务)是 LINUX 服务器最常使用的服务之一。Apache 的功能很丰富,但不是针对高性能而设计的。然而,对于这个基准测试程序,我们选择 Apache 作为 Web 服务器,是因为当前位于因特网上的网站选用 Apache 作为 Web 服务器的情况多于选用任何其它 Web 服务器的情况。对于 Web 服务,SPECweb99 是人们公认的标准基准测试程序。SPECweb99 着重以下内核组件:调度程序、TCP/IP、各种线程模型、发送文件、零复制和网络驱动程序。

图 3 中显示了 SPECweb99 结果。另外还描述了所使用的硬件和软件配置以及该基准测试程序的目标。在该基准测试程序性能方面取得进展的同时,我们与 Linux 内核开发团队和 IBM Apache 团队保持着紧密的协作关系。我们已经解决的一些问题在以下方面取得了改善:添加了 O(1) 和读复制更新(RCU)数据缓存内核补丁以及向 Apache 添加了新的动态 API mod_specweb 模块。正如图 3 所示,对于这个基准测试程序,我们已经超出了目标;然而有几个与 Linux 内核组件相关的突出问题,我们正在解决这些问题,我们相信这会极大地改进该基准测试程序的性能。
结束语
Linux 广受大家喜爱,尤其在低端和位于中间档次的系统。事实上,Linux 被广泛地认为是一个稳定的和具有高可靠性的操作系统,常用于作为 Web 服务器的这些机器。然而,高端的企业级系统往往需要访问 GB、PB 甚至 EB 的数据。这些系统除需要更多的处理器外,还需要具有高内存和带宽需求的不同应用程序和解决方案(请参阅参考资料中的 developerWorks 文章“Open source in the biosciences”,这篇文章描述了这类应用程序)。
这类系统应用程序引入了与众不同的问题,这些问题可能比较小安装中所产生问题的复杂程度超过几个数量级。针对企业市场,为了使 Linux 更具竞争力,则必须改善其性能和可伸缩性。
而迄今为止,我们的经验说明,可以显著地改善 Linux 内核的性能。通过在开放源码社区内的工作来量化 Linux 内核性能,从而为这个目标奉献自己的微薄之力,开发补丁来解决性能下降问题,使 Linux 工作得更好,为将来 Linux 在企业中的应用而做好准备,我们为所做的一切而感到自豪。
