AIX内存性能优化Word文档下载推荐.docx
- 文档编号:20695359
- 上传时间:2023-01-25
- 格式:DOCX
- 页数:23
- 大小:306.93KB
AIX内存性能优化Word文档下载推荐.docx
《AIX内存性能优化Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《AIX内存性能优化Word文档下载推荐.docx(23页珍藏版)》请在冰豆网上搜索。
这部分内容提供了与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或者更低,而这将导致进行没有必要的分页,更糟糕的是,会阻塞那些需要空闲帧的线程,因为这个值设置得过低。
要解决这个问题,在AIXVersion5.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相比,它所消耗的内存非常少。
为了方便调试,还添加了一些新的特性,以帮助您修复各种内存分配问题。
∙改进的多种页面大小支持:
正如前面在优化部分中所介绍的,现在有四种不同的页面大小可供使用。
这些大小分别为:
o4KB
o64KB
o16MB
o16GB
∙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进行优化以实现性能最大化的其他方法。
第2部分:
用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系统开发了一些新的工具。
生成基准数据是非常重要的,这一点无论重申多少次都不为过。
不要等到用户开始抱怨糟糕的性能时,才开始监视您的系统。
应该在将服务器投入生产环境中后,尽快地捕获其中的数据。
如果您做到了这一点,那么您就可以积极主动地进行优化工作,其目标是在用户指出存在的问题之前找到它。
如果您不了解系统正常运行时的相关数据,那么就无法确定所查看的数据是否表示存在性能问题。
所有这些都是适当的性能优化方法中的一部分,有效地捕获数据,并正确地分析其结果和趋势。
让我们来进行仔细地研究。
UNIX通用的内存监视
在这个部分中,我为在所有UNIX分发版都可以使用的一些通用UNIX工具提供了概述,包括ps、sar和vmstat。
其中的大多数工具都允许您快速地对性能问题进行故障排除,但是它们并不适合用于进行历史趋势研究和分析。
大多数管理员都不善于使用ps命令对可能的内存瓶颈进行故障排除。
事实上,许多UNIX管理员甚至不知道可以使用ps帮助确定内存问题的原因。
ps最常用的功能是查看系统中运行的进程(请参见清单1)。
清单1.使用ps查看系统中运行的进程
#ps-ef|more
UIDPIDPPIDCSTIMETTYTIMECMD
root100May03-0:
03/etc/init
root112441915400:
00<
defunct>
root1138410May03-0:
00/usr/lib/errdemon
root12434166180May03-0:
29/usr/opt/ifor/bin/i4llmd-b-nwc
clwts-l/var/ifor/llmlg
root13218166180May03-0:
00/usr/sbin/rsct/bin/IBM.AuditRMd
root1344010May03-0:
00/usr/ccs/bin/shlap
root13690139540May03-0:
00dtlogin<
:
0>
-daemon
root1395410May03-0:
00/usr/dt/bin/dtlogin-daemon
正如您所看到的,上面的示例中并没有提供很详细的信息来帮助您确定内存瓶颈。
清单2中的命令向您显示了系统中每个活动进程的内存使用情况,并以一种恰当的方式进行了排序。
其中按照旧式BerkeleySoftwareDistribution(BSD)的方式使用了ps,不包含短横线。
我喜欢这个命令的原因在于,您不需要调用任何GUI类型的工具,就可以快速地了解内存方面的情况(请参见清单2)。
清单2.每个活动进程的内存使用情况
.
#psgv|head-n1;
psgv|egrep-v"
RSS"
|sort+6b-7-n-r
PIDTTYSTATTIMEPGINSIZERSSLIMTSIZTRS%CPU%MEMCOMMAND
15256-A64:
1575525722888xx23563160.90.0/usr/lpp/
22752-A0:
082611960198032768465200.00.0dtwm
14654-A0:
0032419321932xx19800.00.0/usr/sbin
20700-A0:
07271186818963276895280.00.0/usr/dt/b
20444-A0:
032031736182432768551880.00.0dtfile
17602-A0:
002749481644327688176960.00.0sendmail:
13218-A0:
007416201620xx11600.00.0/usr/sbin
让我们先来看看这些信息所表示的含义。
∙RSS——每个进程的文本和数据段的RAM使用量。
PID为15256的进程使用了2888k。
∙%MEM——RSS/TotalRAM的实际用量。
监视%MEM使用达到百分之四十到七十的进程。
∙TRS——文本段的RAM使用量,单位为KB。
∙SIZE——为这个进程(文本和数据)分配的分页空间的实际大小。
尽管这个命令提供了许多有价值的信息,但是,除非有一个我非常信任的管理员已经诊断出系统中存在某种类型的内存问题,否则我通常不会启动这个命令。
您应该启动后备的命令vmstat。
事实上,您应该使用vmstat来确定瓶颈的原因,即使在您尚未确定它是否与内存有关的时候。
vmstat可以报告许多信息,包括内核线程、CPU活动、虚拟内存、分页、阻塞的I/O磁盘、以及相关信息(请参见清单3)。
对我来说,要了解系统的运行情况,这是最快捷且最原始的方法。
清单3.使用vmstat以确定瓶颈的原因
#vmstat14
SystemConfiguration:
lcpu=4mem=4096MB
kthrmemorypagefaultscpu
---------------------------------------------------------------
rbavmfrerepipofrsrcyinsycsussyidwa
1213658312704574492034522236053040291
271365
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- AIX 内存性能优化 内存 性能 优化