互联网服务vmmaix vmm

AIX 虚拟内存说明和设置

为了使数据库系统能够使用更多的物理内存,可以通过设置AIX的VMM(虚拟内存管理器)的参数进行。下面将介绍四个相关的参数。
maxfree:VMM中空闲内存列表(freelist)的最大值。
minfree:VMM中空闲内存列表(freelist)的最小值。
maxperm:设置允许的文件缓存占物理内存的最大百分比。
minperm:设置允许的文件缓存占物理内存的最小百分比。
在AIX的虚拟内存管理器中始终维护一个空闲的内存列表,如果内存列表中的内存少于minfree指定的值,那么VMM就会启动page  stealer,从已经分配的内存中窃取内存加入到空闲内存列表,把它的内容放到Page Space中。如果空闲内存列表超过了maxfree指定的值,那么(page  stealer)页面窃取器就会停止内存窃取工作。所以在实际系统中,如果内存的空闲列表始终大于或等于maxfree设定的值,那么该系统应该不存在任何内存短缺的问题。
当页面窃取器工作时,它检查minperm和maxperm的设置值,如果现在的文件缓存少于minperm设定的值,那么它将同时从文件系统缓存和计算内存中窃取页面。当文件缓存大于maxperm设定的值时,它将只从文件系统缓存中窃取页面。当文件换存介于两者之间时,除非文件缓存的repages大于计算缓存的repages,它将从文件系统缓存中窃取页面。
操作系统默认的maxperm设置值为80,对于数据库系统来说,应该设置一个比较小的值,例如40,这样以来,我们就可以使文件系统的缓存数量减少。从而DB2系统能够使用更多的物理内存。同时操作系统又需要文件缓存来进行其他的操作,所以可以将minperm设置为20。
对于maxfree和minfree来说,可根据你系统内存使用的状况来作调整。该数值以4K字节为单位。如果minfree如果调整过高,可能引起不必要的内存窃取,影响系统的性能。但是如果设置过低,可能在系统内存不够的状况下,内存窃取器需要花费更多的页面扫描来窃取页面到空闲内存列表中,也会影响系统性能。对于maxfree而言,可以将minfree的值加上一个范围值来设定。
对于一个系统的性能调优,有很多需要考虑的方面,应该在调整的时候,一个参数一个参数的调整,随时监控系统的运行状况并做适当调整。
调整AIX  VMM参数,对于AIX  5.1及4.3.3版本,可以使用命令/usr/samples/kernel/vmtune命令来进行调整。要查看该命令在你的AIX系统上是否可用,可以使用下列命令检查:
# lslpp -lI bos.adt.samples
如果该程序包没有安装,请安装该程序包以使用该命令。如设置maxperm=40, minperm=20,  maxfree=200, minfree=120可以使用下列命令调整:
/usr/samples/kernel/vmtune -P 40 -p 20 -F  200 -f 120
对于AIX 5.2版本, AIX操作系统提供了新的VMM调整命令vmo。它是文件集bos.perf.tune中的一部分,可以从AIX基本安装介质中安装该文件集。
如设置maxperm=40, minperm=20, maxfree=200, minfree=120可以使用下列命令调整:
vmo -o  maxperm%=40 -o minperm%=20 -o maxfree=200 -o minfree=120
注意:在调整该参数时,在AIX 5.1及4.3.3版本中,一定得把调整命令加入到启动脚本中,如将调整条目加入/etc/inittab中。在AIX  5.2中,可以使用参数开关 -p来指定调整适用于当前值和重新启动后。
发生protection page fault的时候, VMM从paging  space临时申请一个新页面保存新数据

在非deferred  update情况下,dirty的文件页面一定回写原数据文件,与paging space无关
在deferred  update情况下,dirty的文件页面等同于working 页面,交换到paging space

新的方法将 maxperm 设置为一个比较高的值(例如,>80),并且确保将 lru_file_repage 参数设置为 0。lru_file_repage 是在带 ML4 的 AIX  Version 5.2 和 AIX Version 5.3 的 ML1 中首次引入的。这个参数说明了是否应该考虑 VMM 重分页计数,以及它应该替换何种类型的内存。其缺省设置为 1,所以您需要对它进行更改。当您将这个参数设置为 0 时,它将告诉 VMM,您希望它仅替换文件页面,而不是计算页面。如果您的 numperm 小于 minperm 或者大于 maxperm,这种情况会发生变化,这正是您希望将 maxperm 设置得较高而将 minperm设置得较低的原因。我们不应该忘记一个事实,对这个值进行优化的主要原因是因为您希望保护计算内存。回到前面的示例,Oracle 使用它自己的缓存,同时使用 AIX 文件缓存,但是却产生了混淆,所以您希望停止它。在这个场景中,如果您打算降低 maxperm,那么您将会停止正在运行的应用程序缓存程序。
参与6

5同行回答

hujinqianhujinqian软件开发工程师华润万家
好贴啊,谢谢!显示全部
好贴啊,谢谢!收起
互联网服务 · 2013-05-14
浏览1756
tony163169tony163169系统运维工程师温州银行
感谢分享。显示全部
感谢分享。收起
银行 · 2013-03-01
浏览1722
aiqihzaiqihz系统运维工程师上海申石
感谢分享!显示全部
感谢分享!收起
互联网服务 · 2013-02-22
浏览1773
午夜幽魂午夜幽魂系统运维工程师计算机有限公司
好贴学习了,显示全部
好贴学习了,收起
系统集成 · 2012-10-29
浏览1737
枫之谷枫之谷工程师云南IBM
:handshake显示全部
:handshake收起
IT分销/经销 · 2012-10-29
浏览1849

提问者

huangrq_cn
存储架构师中投科信
擅长领域: 服务器存储灾备

问题状态

  • 发布时间:2012-10-29
  • 关注会员:1 人
  • 问题浏览:10024
  • 最近回答:2013-05-14
  • X社区推广