内核比较:2.4 和 2.6 上的 Web 服务

时间:2022-01-05 03:46:33

2.6 内核的关键增强功能

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

新硬件支持

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

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

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

NUMA(不一致内存访问,Non-Uniform 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 秒之内创建和销毁 100,000 个线程 (在任一时刻最多可以同时运行 50 个线程)。

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

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

0(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 System (AFS)。新的网络协议和特性,例如流控制传输协议 (Stream Control Transmission Protocol, SCTP)、Internet Protocol Security (IPSec)、改进的 IPv6 支持和 IP Payload Compression (IPComp),给 Linux 2.6 内核用户提供了更好地网络安全和传输质量。

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

原文出处(点击此处)