linux2.4内核:Linux系统 2.4和2.6内核上Web服务比较



  在支持企业应用方面Linux 2.6 内核做了很多改进本文给出了 IBM Linux Technology Center Web 服务测试工作结果从各个区别角度对 Linux 2.4 和 2.6 内核进行了比较其中亮点是 2.6 内核关键增强功能、测试思路方法学和测试本身结果最终结果:2.6 内核提供 Web 页服务要比 2.4 快得多并且可靠性点也不差

  在 IBM Linux Technology Center (LTC) 进行 Linux Web 服务测试工作是发现 Linux 内核缺陷测试着重于和实际情况中使用 Web /应用企业用户环境相关工作负荷也着重于提高 Linux 内核稳定性、可扩展性以及 (内核) 和 Web 服务器/实用服务器兼容性最重要并不是识别 Web 服务器和应用服务器缺陷

测试综述

两类 Web 服务测试

  有两类服务器可以用于 Web 服务:Web 服务器和应用服务器在本文中我将使用术语“Web 服务”来统表示它们Web 服务器 通过处理基于 HTTP 请求来使网页显示在 Web 浏览器中

  应用服务器 是广义上服务器通过各种其中可能包括 HTTP 来向客户机应用公开业务逻辑相对于 Web 服务器它提供了更为复杂和强大功能例如会话管理、负载平衡、消息传递、事务管理、等等在某种意义上应用服务器是 Web 服务器超集

  我们为 Linux 内核测试环境选择了些 Web 服务器和应用服务器包括 Apache、Jakarta-Tomcat、IBM WebSphere Application Server 和 Jboss.这些大部分都是开放源代码项目可以免费(请参阅 参考资料 链接以获得更多有关这些服务器信息)

2.4 和 2.6 内核测试的间差异

  使用 Web 服务器和应用服务器作为测试工作负载在 2.5/2.6 内核上测试工作要比在 2.4 内核上详尽得多在测试 2.4 内核时仅用到了 Apache 和 WebSphere Application Server 这两个服务器作为综合测试方案部分Web Performance Tool (WPT) 是所用主要 Web 测试工具出于偶然机会当内核中有大改动或者需要验证软件Software要进行 Web 服务测试

  在对 2.5/2.6 内核测试中我们制定了更为可靠和完整测试计划 (请参阅 参考资料获得 SourceForge 上有关2.5 测试计划和实施计划链接)在计划中制定了适当测试范围、测试思路方法和测试时间线在综合测试、重点测试和用户仿真测试中Web 服务器和应用服务器测试被广泛用作测试工具

  除了使用更多服务器以外我们还使用了些区别 Web 客户机测试工具包括 WPT、Hammerhead、Httperf 和 Pagepoker来模拟区别类型用户环境所有服务器和客户机工具执行持续时间区别 (24 小时和 96 小时)区别于持续时间固定对最新可用内核测试

  此外测试硬件不局限于基于 Intel 单处理器系统测试在 1 路、4 路和 8 路 IBM xSeries 机器上和 64 位 IBM PowerPC 系统上进行内核相关缺陷在 Linux 内核缺陷追踪系统中公开

2.6 内核关键增强功能

  Web 服务在企业界扮演着重要角色为支持企业应用2.6 内核有了显著改进和变化新硬件支持、软件Software支持和内部内核改进给 2.6 内核带来了更好扩展性和稳定性2.6 内核在跨多个 CPU 和大内存时高负载情形下性能比 2.4 更好2.6 中将有益于企业应用些关键特性包括:

新硬件支持

  Linux 支持范围广泛硬件平台2.6 内核支持新体系结构例如 64 位 PowerPC、64 位 AMD Opteron 和嵌入式处理器

超线程

  超线程是 Intel 项创新是 2.6 内核所支持主要硬件提高基本来说超线程可以通过同步多线程技术(simultaneous multi-threading technologySMT)在单个物理处理器上创建多个虚拟处理器;多个应用线程可以同时在个处理器上运行为充分利用这特性应用需要是多线程

  超线程给 Web 服务器和应用服务器带来了很多益处它可以增加可处理事务数目提供更快服务器响应时间并支持服务器处理更大工作负载和更多用户请求当前Intel Pentium 4 Xeon 处理器具有内置超线程硬件

[NextPage]

NUMA(不致内存访问Non-Unorm Memory Access)

  NUMA 是为提高系统性能添加到 Linux 2.6 内核个主要特性在支持多处理器传统模型中(对称多处理或者说是 SMP)每个处理器对内存和 I/O 有同等访问权限对处理器总线高争夺率成为性能瓶项NUMA 体系结构可以在不增加处理器总线负载情况下提高处理器速度在 NUMA 系统中每个处理器距某部分内存较近而距其他内存较远处理器被安排在称为“节点”较小区域中每个节点有其自己处理器和内存节点间可以互相通信处理器访问本地节点内存要比访问区别节点内存快尽量减少节点间通信可以提高系统性能

  为支持 NUMA 硬件Linux 内核在多个范围进行了系列改进包括调试器多路 I/O个可以让用户可以了解用到处理器和内存资源分配用户级 API和内部内核 API 以使内核子系统了解 NUMA 拓扑NEC Azusa、IBM x440 和 IBM NUMA-Q 是 NUMA 机器例子

扩展设备支持

  在 2.6 内核中支持更多类型设备2.6 内核还将主识别号限制从 255 增加到 4095并且允许每种类型可以有多于 100 万个子设备这将给高端企业系统以足够支持

线程改进

  2.6 内核采用了新线程库Native POSIX Thread Library (NPTL)这个新库基于 1:1 模型完全符合 POSIX 标准Red Hat 所作测试表明个老 IA-32 双 450MHz PII Xeon 系统上使用 NPTL 可以在 2.3 秒的内创建和销毁 100000 个线程 (在任时刻最多可以同时运行 50 个线程)

  NPTL 为多线程应用在 SMP 环境中带来了极大性能提高它尤其有益于超重量级多线程企业级应用例如 应用、Web 服务器和应用服务器应用

  2.6 内核中另个对线程改进是可分配 PID 数目从 32000 增加到了 10 亿线程变化改善了在重负载系统中应用启动性能由于允许 PID 上限较低2.4 内核有时会出现应用请求 PID 编号过高情况

O(1) 调度

  0(1) 调度于 2002 年被接受并加入到官方 Linux 2.5 内核树中0(1) 调度通过改善大量进程吞吐率提高了 Linux 扩展性和整体上性能尤其是在大型 SMP 上0(1) 在任务和 CPU 数目巨大时可以很好地扩展具有很强“亲合力”以避免任务在 CPU 的间反复移动0(1) 调度还允许跨 CPU 负载平衡和 NUMA-aware 负载平衡

I/O 改进

块 I/O 层

  2.6 内核中块 I/O 层被重写以提高内核可扩展性和性能2.4 中全局 I/O 请求锁不再使用在 2.6 中块 I/O 缓冲区(kiobuf)允许 I/O 请求可以比 PAGE_SIZE 大出现大部分问题是由对缓冲区头和 kiobuf 使用引起在这个新层中已经得以处理完全重写了 I/O 调度对 SCSI 支持也有了重大改进

异步 I/O

  异步 I/O 是在 2.6 内核中新出现它为 Web 服务器和数据库等企业应用扩展提供了个途径而不必求助用于网络连接复杂内部池机制

其他改进

  除了这些改进以外还有其他些值得变化和新特性例如2.6 内核提供了对些新文件系统支持包括 JFS、XFS、NFS v4 和 Andrew File (AFS)网络协议和特性例如流控制传输协议 (Stream Control Transmission Protocol SCTP)、Internet Protocol Security (IPSec)、改进 IPv6 支持和 IP Payload Compression (IPComp)给 Linux 2.6 内核用户提供了更好地网络和传输质量

  不是 2.6 内核带来提高都可以应用于每个企业应用它们中有些需要特定硬件和软件Software无论如何这里列出大部分提高都是全面内核改进将帮助 Linux 跨入企业门槛

测试基础设施

  在这我将讨论 Web 服务测试是如何进行包括硬件环境、选择 Web 服务器/应用服务器和 Web 测试工具以及针对典型测试情形测试策略以下讨论基于 2.6 内核

Web 服务服务器

  在 Linux 2.6 内核测试中使用了 4个 Web 服务服务器两个是 Web 服务器 (Apache 和 Jakarta-Tomcat)另外两个是应用服务器(WebSphere Application Server 和 Jboss)

  Apache 是处于市场领导地位 Web 服务器Netcraft Web Server Survey 调查结果显示Internet 上超过 64% Web 站点正在使用 Apache.它是个开放源代码项目

  Jakarta-Tomcat 是个开放源代码 servlet 容器带有经 Apache 许可 JSP 环境Jakarta-Tomcat 有个内置 Web 服务器也可以在产品环境中和其他 Web 服务器起使用

  WebSphere Application Server 是个企业级应用服务器用于动态电子商务应用这个服务器基础是 J2EE 技术和 Web Services.WebSphere Application Server 具有很高性能并提供了个可以跨越大部分操作系统高度可扩展事务引擎越来越多 WebSphere 应用正在由传统 Unix OS 向 Linux 迁移这样可以通过更少费用而获得近乎同样性能

Tags:  编译2.6内核 linux2.42.6 linux2.6内核编译 linux2.4内核

延伸阅读

最新评论

发表评论