级别: 中级 Ken Milberg, UNIX 顾问、技术作家和网站专家, techtarget.com 2007 年 7 月 30 日 本系列的三篇文章深入研究内存优化中的参数优化,重点关注于内存性能优化方面的各种挑战和各种最佳实践,并且还介绍了 AIX® Version 5.3 中的一些改进。尽管与中央处理单元 (CPU) 优化相比,实现内存优化可能更加困难,但它同样是非常重要的。在 AIX 服务器中,与任何其他子系统相比,您可以对内存进行更多的优化工作。更改系统中的某些内存参数,可以极大地提高性能,特别是在尚未对这些参数进行优化的运行环境中。本系列文章的第 1 部分提供了 AIX 中内存的概述,包括对虚拟内存和虚拟内存管理器 (VMM) 的介绍。 作为一名系统管理员,您应该已经对有关内存的基本知识非常熟悉,如物理和虚拟内存之间的区别。您可能还不是很清楚 AIX® 中的虚拟内存管理器 (VMM) 是如何工作的、以及它与性能优化之间的关系如何。而且,在最近几年中,有一些优化命令和参数发生了变化,如果您较长时间没有使用 AIX 了,那么您可能会发现,您从前所熟悉的一些命令,现在甚至根本无法继续使用了。本文详细地介绍了 AIX VMM,以及优化 VMM 所需使用的各种优化命令。我将介绍一些监视工具,您可以使用这些工具来优化您的系统,本文还对一些比较重要的 AIX Version 5.3 内存管理增强功能进行概述。实现这些增强功能,即将其应用到您的系统环境,可以在您的系统中优化内存性能。 尽管您可能会发现,与其他的子系统相比,内存的优化更为困难一些,但是收到的效果往往更加显著。可能还有一些应该在您的系统中进行设置的特定的优化建议,这取决于您所运行的系统的类型。为了帮助证实这些内容,我使用了一个特定的示例,并介绍了进行这些参数设置的一些最佳实践。在某些情况下,动态地优化一个或两个参数,可能会使得您的系统的整体性能完全不同。 无论您需要对哪个子系统进行优化,有一个方面是相同的,即优化系统—您始终应该将其看作一个正在进行的进程。开始对系统进行监视的最佳时间是当您首次将系统应用到产品环境中并且正常运行时,而不是等到用户抱怨系统的性能非常糟糕的时候。如果您不了解系统正常运行时的情况,并以此作为基准,那么您可能永远也无法真正地确定是否出现了问题。而且,一次只应该进行一项更改,并且在进行了更改之后,应该尽快地捕获相关的数据并对其进行分析,以确定这项更改究竟带来了什么不同(如果存在的话)。 这部分内容提供了与 AIX 有关的内存方面的概述。我将介绍 AIX 如何使用虚拟内存来寻址比系统中物理内存更大的内存。我还将说明 VMM 的工作方式以及它如何处理各种请求。 任何有关内存和 AIX 的介绍都必须以对 VMM 的描述作为开始。有时候,令 AIX 新手感到困惑的是,VMM 服务如何处理系统中所有的内存请求,而不仅仅是虚拟内存本身。在访问 RAM 时,VMM 需要分配空间,即使是在系统中有足够的物理内存的情况下。它实现了分页空间的预分配过程。使用这种方法,VMM 在帮助管理实际内存方面扮演了重要的角色,而不仅是在虚拟内存方面。下面来说明它的工作原理。在 AIX 中,将所有的虚拟内存段划分为若干个页面。在 AIX 中,每个页面的缺省大小为 4KB。所分配的页面可以位于 RAM 或者分页空间(虚拟内存存储于磁盘上)。VMM 还维护一个称为空闲列表 的对象,该对象定义为未分配的页帧。它们用于处理缺页的情况。通常存在少量未分配页面(您可以自行配置),VMM 可以使用这些页面来腾出空间并为其重新分配页帧。可以使用 VMM 的页面置换算法来选择要重新分配页帧的虚拟内存页面。这种分页算法可以确定对当前位于 RAM 中的哪些虚拟内存页面的页帧进行回收,并放回到空闲列表中。AIX 可以使用所有可用的内存,除了那些配置为未分配并用做空闲列表的内存之外。 需要重申的是,VMM 的目的是管理 RAM 和虚拟页面的分配。由此可以看出,它的目标是帮助最大限度地缩短缺页响应时间,并在可能的情况下减少虚拟内存的使用。很显然,假设要在 RAM 和分页空间之间进行选择,在 RAM 可用的情况下,大多数人都更希望使用物理内存。另外,VMM 还将虚拟内存段划分为两种不同的类别。它们分别是,使用计算内存的工作段和使用文件内存的持久段。了解这两种类别之间的区别是非常重要的,因为这将帮助您实现系统的最优化。 当您的进程对计算信息进行处理时,将使用到计算内存。这些工作段是临时的(暂时的),并且当进程终止或者页面被替换时,这些工作段将不复存在。它们没有对应的持久磁盘存储位置。在许多情况下,当一个进程终止时,将释放其物理和分页空间。当可用页面出现较大的峰值时,您可以在监视系统的过程中发现这种情况。在 VMM 中,当空闲物理内存较少时,可以将最近没有使用的程序从 RAM 移出到分页空间,以帮助释放物理内存,从而完成更多的实际工作。 与计算内存不同,文件内存使用了持久段,并在磁盘上具有持久存储位置。数据文件或者可执行程序通常都映射为持久段,而不是工作段。数据文件可能与文件系统相关,如 JFS、JFS2 或 NFS。它们一直都位于内存中,直到文件被卸载、页面被替换、或者取消了到文件的链接。在将数据文件复制到 RAM 中之后,VMM 控制何时对这些页面进行覆盖或者将其用于存储其他数据。在可以选择的情况下,大多数人更希望将文件内存调出到磁盘,而不是计算内存。 当进程引用磁盘上的某个页面时,必须将其调入,而这可能会导致再次将其他的页面调出。VMM 常驻内存并在后台运行,尝试替换最近没有使用的页帧,其中使用到前面介绍的页面置换算法。它还可以帮助检测系统颠簸,当可用内存量很低并且不断地调入和调出页面以支持任务的处理时,可能会出现系统颠簸。实际上,VMM 中提供了一种内存负载控制算法,它可以检测系统是否出现颠簸,并尝试去解决这种情况。如果不加以处理,系统颠簸可能会导致系统停滞,因为内核此刻过分地关注于为页面腾出空间,而不是完成任何有实际意义的工作。 让我们研究一些相关的工具,它们允许您对 VMM 进行优化,从而实现系统性能的优化。我提供了一个环境示例,其中使用了某种方法对相关的参数进行优化。我还介绍了一些需要注意的关键参数。 在 AIX 5L™ 之前,您可能曾经使用过 让我们来介绍一下 AIX 5L 中页帧方面一项重要的变化。从 POWER4 处理器开始,AIX 可以支持最大 16MB 的页面大小。实际上,POWER5 芯片支持四种虚拟内存页面的大小:4KB、64KB、16MB 和 16GB。通过下面一项简单的 清单 1 中的命令分配了 16777216 字节以提供 128 个大型页面。 清单 1. 分配字节
最重要的 所有的这些方法都发生了变化。新的方法将 清单 2 设置了这些关键的优化参数。 清单 2. 设置优化参数
尽管您已经习惯于对这些参数进行更改,但是现在,您只需保持 还有两个其他的重要参数需要说明,它们是 在较早版本的 AIX 中,当缺省 清单 3. 手动地设置 minfree 和 maxfree 参数
让我们先研究一下 AIX Version 5.3 中与内存有关的一些最新的变化。适当地使用 AIX Version 5.3 中的内存管理增强功能,可以帮助您高效地对系统进行优化。有关其他的方面,让我们介绍一下页面空间清理、动态的 xmalloc、内存关联和 Watson malloc。
您还应该注意,不再需要在 rc.tune 中保存任何可调整的设置。现在,新的方法使用 /etc/tunables,这无疑是一项改进。尽管这个特性是在 AIX Version 5.2 而不是 Version 5.3 中引入的,但是仍然值得在这里进行说明。 如前所述,在您对 AIX 进行优化或监视之前,您必须设置一个基准。在进行优化之后,您必须捕获数据并分析更改所带来的结果。如果没有这类信息,您将无法了解优化工作的实际效果。在本系列文章的第 1 部分中,您了解了所有关于 AIX 的 VMM 的内容及其工作方式。您还对一个 Oracle 系统进行了调整,以优化内存子系统的使用。您研究了一些重要的内核参数、它们的用途以及如何对它们进行优化。在学习的过程中,您研究了近年来 AIX Version 5.3 中与内存有关的一些根本变化,包括某些参数和改进。 第 2 部分重点关注于系统监视的细节,以确定内存瓶颈,分析趋势和结果。第 3 部分重点关注于交换空间和对 VMM 进行优化以实现性能最大化的其他方法。
学习
获得产品和技术
讨论
|
AIX 5L 内存性能优化,第 1 部分: AIX Version 5.3 中内存的概述以及内存参数的优化
最新推荐文章于 2021-09-01 15:27:36 发布