AIX 5L内存性能优化.docx

上传人:b****8 文档编号:30530714 上传时间:2023-08-16 格式:DOCX 页数:39 大小:307.72KB
下载 相关 举报
AIX 5L内存性能优化.docx_第1页
第1页 / 共39页
AIX 5L内存性能优化.docx_第2页
第2页 / 共39页
AIX 5L内存性能优化.docx_第3页
第3页 / 共39页
AIX 5L内存性能优化.docx_第4页
第4页 / 共39页
AIX 5L内存性能优化.docx_第5页
第5页 / 共39页
点击查看更多>>
下载资源
资源描述

AIX 5L内存性能优化.docx

《AIX 5L内存性能优化.docx》由会员分享,可在线阅读,更多相关《AIX 5L内存性能优化.docx(39页珍藏版)》请在冰豆网上搜索。

AIX 5L内存性能优化.docx

AIX5L内存性能优化

AIX5L内存性能优化,第1部分

AIXVersion5.3中内存的概述以及内存参数的优化

KenMilberg,UNIX顾问、技术作家和网站专家,

2007年7月30日

本系列的三篇文章深入研究内存优化中的参数优化,重点关注于内存性能优化方面的各种挑战和各种最佳实践,并且还介绍了AIX®Version5.3中的一些改进。

尽管与中央处理单元(CPU)优化相比,实现内存优化可能更加困难,但它同样是非常重要的。

在AIX服务器中,与任何其他子系统相比,您可以对内存进行更多的优化工作。

更改系统中的某些内存参数,可以极大地提高性能,特别是在尚未对这些参数进行优化的运行环境中。

本系列文章的第1部分提供了AIX中内存的概述,包括对虚拟内存和虚拟内存管理器(VMM)的介绍。

引言

作为一名系统管理员,您应该已经对有关内存的基本知识非常熟悉,如物理和虚拟内存之间的区别。

您可能还不是很清楚AIX®中的虚拟内存管理器(VMM)是如何工作的、以及它与性能优化之间的关系如何。

而且,在最近几年中,有一些优化命令和参数发生了变化,如果您较长时间没有使用AIX了,那么您可能会发现,您从前所熟悉的一些命令,现在甚至根本无法继续使用了。

本文详细地介绍了AIXVMM,以及优化VMM所需使用的各种优化命令。

我将介绍一些监视工具,您可以使用这些工具来优化您的系统,本文还对一些比较重要的AIXVersion5.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进行优化,从而实现系统性能的优化。

我提供了一个环境示例,其中使用了某种方法对相关的参数进行优化。

我还介绍了一些需要注意的关键参数。

在AIX5L™之前,您可能曾经使用过vmtune命令对您的VMM系统进行优化。

尽管在AIXVersion5.2中提供了vmo命令,但vmtune命令也可以使用,直到AIXVersion5.3。

在AIXVersion5.3中,您不能够再使用vmtune这一命令了。

尽管有一些根本的变化您需要了解,但是大多数实际参数都是相同的。

让我们来介绍一下AIX5L中页帧方面一项重要的变化。

从POWER4处理器开始,AIX可以支持最大16MB的页面大小。

实际上,POWER5芯片支持四种虚拟内存页面的大小:

4KB、64KB、16MB和16GB。

通过下面一项简单的vmo更改,您就可以对系统进行优化以提供大型的页面,从而对于消耗大量内存的应用程序极大地提高系统性能。

性能之所以得到了改进,是因为提高了TranslationLookasideBuffer(TLB)的命中率,这是因为TLB可以映射到更大的虚拟内存范围。

例如Oracle数据库,无论是联机事务处理(OLTP)或者数据仓库应用程序,都可以从大型页面的使用中获益。

这是因为Oracle使用了大量的虚拟内存,特别是对于其系统全局区(SGA)。

这里使用的示例是一个运行AIXVersion5.3的p550LPAR上的Oracle数据库服务器。

该系统可用于OLTP和数据仓库。

清单1中的命令分配了16777216字节以提供128个大型页面。

清单1.分配字节

#vmo-r-olgpg_size=16777216lgpg_regions=128

最重要的vmo设置是minperm和maxperm。

将这些参数设置为适合您的系统的值,以确保对计算内存或者文件内存进行优化。

在大多数情况下,您并不希望调出工作段,因为这样做会导致系统进行没有必要的页面调出,并且会降低性能。

以前,它的工作方式非常简单:

如果您的文件页面(numperm%)大于maxperm%,那么页面置换算法将仅替换文件页面。

当它小于minperm时,可以替换文件页面和计算页面。

如果它的值位于两者之间,那么将仅替换文件页面,除非重分页的文件页面的数目大于计算页面。

还有另一种方法,如果您的numperm大于maxperm,您可以开始替换持久的存储。

基于这种方法学,早期的方法是调整您的minperm和maxperm参数,将maxperm设置得比较低(例如,<20),而将minperm设置为<=10。

您可以使用这种方法来优化您的数据库服务器。

所有的这些方法都发生了变化。

新的方法将maxperm设置为一个比较高的值(例如,>80),并且确保将lru_file_repage参数设置为0。

lru_file_repage是在带ML4的AIXVersion5.2和AIXVersion5.3的ML1中首次引入的。

这个参数说明了是否应该考虑VMM重分页计数,以及它应该替换何种类型的内存。

其缺省设置为1,所以您需要对它进行更改。

当您将这个参数设置为0时,它将告诉VMM,您希望它仅替换文件页面,而不是计算页面。

如果您的numperm小于minperm或者大于maxperm,这种情况会发生变化,这正是您希望将maxperm设置得较高而将minperm设置得较低的原因。

我们不应该忘记一个事实,对这个值进行优化的主要原因是因为您希望保护计算内存。

回到前面的示例,Oracle使用它自己的缓存,同时使用AIX文件缓存,但是却产生了混淆,所以您希望停止它。

在这个场景中,如果您打算降低maxperm,那么您将会停止正在运行的应用程序缓存程序。

清单2设置了这些关键的优化参数。

清单2.设置优化参数

vmo-p-ominperm%=5

vmo-p-omaxperm%=90

vmo-p-omaxclient%=90

尽管您已经习惯于对这些参数进行更改,但是现在,您只需保持strict_maxperm和strict_maxclient的缺省数值即可。

如果将strict_maxperm更改为1,那么它将会对可用于持久文件缓存的内存量设置一个硬限制。

通过将maxperm值作为缓存的上限,可以实现这一点。

现在,没有必要这样做,因为更改lru_file_repage参数是一种更加有效的优化方法,而您并不希望使用AIX文件缓存。

还有两个其他的重要参数需要说明,它们是minfree和maxfree。

如果空闲列表中的页面数降低到低于minfree参数,那么VMM开始替换页面(只需添加到空闲列表),这样做并不是很合适。

它将继续进行这项操作,直到空闲列表至少包含maxfree参数中指定的页面数。

在较早版本的AIX中,当缺省minfree设置为120时,通常您将会看到空闲列表为120或者更低,而这将导致进行没有必要的分页,更糟糕的是,会阻塞那些需要空闲帧的线程,因为这个值设置得过低。

要解决这个问题,在AIX5.3中,将minfree和maxfree的缺省值分别提高到960和1088。

如果您正在运行AIXVersion5.2或者更早的版本,我建议进行下面的设置,您可以使用清单3中的命令,手动地进行更改。

清单3.手动地设置minfree和maxfree参数

vmo-p-ominfree=960

vmo-p-omaxfree=1088

AIXVersion5.3内存方面的变化和改进

让我们先研究一下AIXVersion5.3中与内存有关的一些最新的变化。

适当地使用AIXVersion5.3中的内存管理增强功能,可以帮助您高效地对系统进行优化。

有关其他的方面,让我们介绍一下页面空间清理、动态的xmalloc、内存关联和Watsonmalloc。

●页面空间清理:

在某些情况下,这种特性允许系统释放分页空间磁盘块,这样一来,您就不需要为给定的工作负载配置相应的分页空间。

仅在使用延迟页面空间分配策略时,才能使用这种特性。

●动态的xmalloc调试(xmdbg):

这种特性通过改进内存分配的整体诊断功能,提高了系统的可靠性。

它允许客户改变收集的诊断内存量,而无需重新启动。

●Watsonmalloc:

与内存碎片的缺省实现相比,这种新的malloc子系统能够快速处理一些小的请求。

与缺省实现Yorktown相比,它所消耗的内存非常少。

为了方便调试,还添加了一些新的特性,以帮助您修复各种内存分配问题。

●改进的多种页面大小支持:

正如前面在优化部分中所介绍的,现在有四种不同的页面大小可供使用。

这些大小分别为:

Ø4KB

Ø64KB

Ø16MB

Ø16GB

●VMM监视工具:

一些监视工具,如vmstat和svmon,都经过了优化,以便支持POWER5体系结构的虚拟化功能。

现在,它们还支持这部分内容中所介绍的一些改进功能。

在本系列文章的第2部分中,我将会详细地介绍这些变化,使您能够深入地了解AIX的各种内存监视工具,以确定瓶颈、以及分析历史趋势和数据。

●内存关联:

对于AIXVersion5.3,您无法禁用内存关联,在AIXVersion5.2中也同样如此。

这样做的目的是,在内存模块中为处理器上产生缺页的进程提供内存分配的功能。

在完成了内存分配之后,处理器可以首先访问附加到其自身模块的内存,然后查找其他的模块,这样可以提高性能。

要禁用AIXVersion5.2上的内存关联支持,您可以使用下面的vmo命令:

vmo-omemory_affinity=0

您还应该注意,不再需要在rc.tune中保存任何可调整的设置。

现在,新的方法使用/etc/tunables,这无疑是一项改进。

尽管这个特性是在AIXVersion5.2而不是Version5.3中引入的,但是仍然值得在这里进行说明。

总结

如前所述,在您对AIX进行优化或监视之前,您必须设置一个基准。

在进行优化之后,您必须捕获数据并分析更改所带来的结果。

如果没有这类信息,您将无法了解优化工作的实际效果。

在本系列文章的第1部分中,您了解了所有关于AIX的VMM的内容及其工作方式。

您还对一个Oracle系统进行了调整,以优化内存子系统的使用。

您研究了一些重要的内核参数、它们的用途以及如何对它们进行优化。

在学习的过程中,您研究了近年来AIXVersion5.3中与内存有关的一些根本变化,包括某些参数和改进。

第2部分重点关注于系统监视的细节,以确定内存瓶颈,分析趋势和结果。

第3部分重点关注于交换空间和对VMM进行优化以实现性能最大化的其他方法。

参考资料

学习

∙您可以参阅本文在developerWorks全球站点上的英文原文。

∙优化AIX5L的性能:

监视您的CPU:

查看本系列中的其他部分。

∙VirtualMemoryManagement--TuningParameterlru_file_repage:

这个演示文稿提供了关于使用lru_file_repage参数的细节。

∙AIX内存关联支持文档:

从IBMSystemp™和AIX信息中心了解关于AIX内存的所有内容。

∙TuningIBMAIX5LforanOracledatabase:

这篇文章介绍了Oracle不同类型工作负载的性能分析和优化,以及AIX5L的配置设置。

∙IBM红皮书:

DatabasePerformanceTuningonAIX用于帮助系统设计人员、系统管理员和数据库管理员,以设计、确定大小、实现、维护、监视和优化关系数据库管理系统(RDMBS),从而在AIX上实现最优的性能。

∙Test234:

AIX5LPerformanceandSystemsTuning:

准备好参加这门考试,作为IBM认证计划的一部分。

∙High-PerformanceArchitecturewithaHistory:

阅读这篇文章,以获得关于PowerPC®体系结构的简要描述。

∙“PowertothePeople”:

阅读这篇文章,以了解IBM在芯片制造方面的历史。

∙“AIX中的处理器关联”:

使用进程关联设置来绑定线程或者取消线程的绑定,这样做可以帮助您找出产生棘手的挂起或死锁问题的根源。

阅读这篇文章,以了解如何使用处理器关联来限制进程,并仅在指定的CPU上运行该进程。

∙“CPU监视和优化”:

阅读这篇文章,以了解标准的AIX工具如何帮助您确定CPU瓶颈。

∙“AIX5LVersion5.3:

为您提供了哪些新的特性”:

了解AIX5LVersion5.3中的哪些特性能够使您获益。

∙操作系统与设备管理:

IBM的这个文档为用户和系统管理员提供了全面的信息,以便在执行诸如备份和还原系统、管理物理和逻辑存储、以及确定合适的分页空间之类的任务时,帮助您选择合适的选项。

∙"nmon性能:

分析AIX和Linux®性能的免费工具”:

这个免费的工具可以在一个屏幕上为您提供大量的信息。

∙“nmonanalyser――生成AIX性能报告的免费工具”:

阅读这篇文章,以了解如何从nmon输出中生成大量的报告图形。

∙IBM红皮书:

有关AIX5LVersion5.3中所提供的性能监视和优化工具的详尽指南,请阅读AIX5LPracticalPerformanceToolsandTuningGuide。

∙TheAIX5LDifferencesGuideVersion5.3Edition:

了解与AIX5LVersion5.2相比,AIX5LVersion5.3中引入的差别。

∙查看KenMilberg撰写的其他文章和教程:

oAcrossdeveloperWorksandIBM

∙受欢迎的内容:

查看您的同事所感兴趣的AIX和UNIX文章。

∙AIXandUNIX:

developerWorks的“AIXandUNIX专区”提供了大量与AIX系统管理的所有方面相关的信息,您可以利用它们来扩展自己的UNIX技能。

∙AIXandUNIX新手入门:

访问“AIXandUNIX新手入门”页面可了解更多关于AIX和UNIX的内容。

∙AIX5LWiki:

发现AIX相关技术信息的协作环境。

∙按主题搜索“AIXandUNIX”库:

o系统管理

o应用程序开发

o性能

o移植

o安全性

o提示

o工具和实用程序

oJava™技术

oLinux

o开放源代码

∙Safari书店:

访问此电子参考资料库可查找特定的技术资源。

∙developerWorks技术事件和网络广播:

了解最新的developerWorks技术事件和网络广播。

∙Podcast:

收听Podcast并与IBM技术专家保持同步。

∙FutureTech:

访问FutureTech网站以了解有关其最新产品的详细信息。

获得产品和技术

∙IBM试用软件:

从developerWorks可直接下载这些试用软件,您可以利用它们开发您的下一个项目。

讨论

∙参与developerWorksBlog,从而加入到developerWorks社区中来。

∙参与“AIXandUNIX”论坛:

oAIX5L—技术论坛

oAIXforDevelopers论坛

o集群系统管理

oIBMSupportAssistant

o性能工具——技术

o虚拟化——技术

o更多“AIXandUNIX”论坛

AIX5L内存性能优化,第2部分:

级别:

中级

KenMilberg,UNIX顾问、技术作家和网站专家,FutureTech

2007年8月06日

使用ps、sar、svmon和vmstat监视内存的使用,并分析所得到的结果。

这个由三篇文章组成的系列重点关注于在运行AIX®的IBMSystemp™服务器上进行内存管理和优化的各个方面。

第1部分提供了关于AIX中内存的概述,包括对虚拟内存和虚拟内存管理器(VMM)的介绍。

它还深入地分析了各种优化参数,并对AIXVersion5.3中内存管理方面的改进内容进行了介绍。

第2部分重点关注于内存子系统监视的详细内容,并介绍了如何分析所得到的结果。

第3部分主要介绍交换空间,以及如何最好地优化VMM设置,以提供最优的交换空间配置和性能。

在本系列文章中,我还将介绍一些内存性能优化和监视方面的最佳实践。

引言

内存子系统中最重要的优化部分并不涉及到实际的优化工作。

在对您的系统进行优化之前,必须弄清楚主机系统的实际运行情况。

要做到这一点,AIX®管理员必须知道应该使用何种工具,以及如何对他或她将要捕获的数据进行分析。

再次说明近期发表的一些其他优化文章(请参见参考资料)中所介绍的内容,您在对系统进行正确地优化之前,必须首先监视主机,无论它是在逻辑分区(LPAR)运行还是在自己的物理服务器上运行。

您可以使用许多命令来捕获和分析数据,所以您需要了解这些命令,以及其中的哪个命令最适合于将要进行的工作。

在捕获了相关的数据之后,您需要对结果进行分析。

有些问题乍看起来像是一个中央处理单元(CPU)的问题,而经过分析之后,可以正确地诊断为内存或I/O问题,前提是您使用了合适的工具捕获数据,并且知道如何进行分析工作。

仅当正确地完成了这些工作之后,您才可以考虑对系统进行实际的更改。

如果医生不了解您的病史和目前的症状,就无法诊治疾病,同样地,您也需要在优化子系统之前对其进行诊断。

如果在出现CPU或者I/O瓶颈的情况下,对内存子系统进行优化,这将是毫无帮助的,甚至可能会影响主机的正常运行。

本文将帮助您了解正确地实施诊断工作的重要性。

您将看到,性能优化并不仅仅只是进行实际的优化工作。

在您将要学习的工具中,有一些是通用的监视工具,所有版本的UNIX都提供了这些工具,另外还有一些工具是专门为AIX编写的。

有些工具为AIXVersion5.3进行了优化,同时还专门为AIX5.3系统开发了一些新的工具。

生成基准数据是非常重要的,这一点无论重申多少次都不为过。

不要等到用户开始抱怨糟糕的性能时,才开始监视您的系统。

应该在将服务器投入生产环境中后,尽快地捕获其中的数据。

如果您做到了这一点,那么您就可以积极主动地进行优化工作,其目标是在用户指出存在的问题之前找到它。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 小学教育

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1