AIX系统Memory性能评估 2
一, VMM的管理简介 2
1.1 空闲列表维护 2
1.2 文件占用内存的比率维护 2
1.3 vmstat命令显示内存中的数据页数 3
二, 使用vmstat确定内存的使用情况 3
2.1 faults故障 4
2.2 memory(内存) 4
2.3 page磁盘交换 4
三, svmon命令 5
3.1 memory段 6
3.2 pg space段 6
3.3 pin 段 6
3.4 inuse 段 6
4, ps命令显示当前运行的进程状态 6
5, 内存的调整 7
AIX系统Memory性能评估
一, VMM的管理简介
内存和交换空间(虚拟内存)一般都是用页面来进行分配和管理的. 在内存中存在两种类型的页面:计算页面(一般为可执行文件段的页面)和文件页面(存储的数据文件的页面). 当我们执行程序或者读入数据的时候, 内存中的页面就逐渐被占用. 当空闲的内存只剩下minfree的时候, vmm的调页进程就被唤醒, 通过调页算法, 将内存中的页面转移到交换空间中. 直到空闲内存达到maxfree, 才停止调页.
1.1 空闲列表维护
在这里, 我们涉及到两个参数:
1, minfree: 最小空闲页链表尺寸. 一旦低于该值, 系统调页进程启动偷页以填充空闲页链表, 保证有足够的内存页面. 偷页就是将不常用的页面替换出去.
2, maxfree: 最大空闲页链表尺寸. 一旦高于该值, 系统停止偷页.
一般情况下, minfree和maxfree通过下面的公式得到.
Maxfree=minmum(memory/128,128), minfree=maxfree-8
如果发现空闲列表不足, 可以用下面的方法增加.
在5.2以上的版本中可以通过vmo参数实现.
#vmo –o minfree = 1000 –o maxfree = 1008 –P #-P参数使得修改永久生效.
在AIX5.2之前的版本需要使用/usr/samples/kernel/vmtune命令
Vmtune –f 1000 –F 1008
1.2 文件占用内存的比率维护
数据文件占用的内存不会主动释放, 所以容易造成内存的文件页面过高的占用, 导致其他的应用内存使用紧张. 这里有两个参数跟这个占用相关.
# vmo -a |grep perm
maxperm = 392704
maxperm% = 20
minperm = 98175
minperm% = 5
strict_maxperm = 0
如上所示的两个参数解释如下:
1, minperm: 用户IO文件访问的最小缓冲页数;
2, maxperm: 用户io文件访问的最大缓冲页数;
这里主要与性能相关的是maxperm. Maxperm参数指定了文件页面可以占用内存的上限.调整参数值的方法如下.
Aix5.2以上的版本使用vmo命令
#vmo –o maxperm%=80 –o minperm%=20
在Aix5.2之前的版本一样要使用vmtune命令
#vmtune –p 20 –P 80 –P
1.3 vmstat命令显示内存中的数据页数
# vmstat -v |grep perm
5.0 minperm percentage
20.0 maxperm percentage
19.8 numperm percentage
系统调页的规则
1, 如果numperm>maxperm, 则只调出文件页面;
2, 如果numperm conn / as sysdba
Connected.
SQL> oradebug setospid 487432
Oracle pid: 12, Unix process pid: 487432, image: oracle@i2db (MMNL)
SQL> oradebug event 10046 trace name context forever,level 8
Statement processed.
SQL> oradebug tracefile_name
/oracle/admin/arpdb/bdump/arpdb_mmnl_487432.trc
SQL> oradebug event 10046 trace name context off
Statement processed.
SQL> exit
Disconnected from Oracle Database 10g Enterprise Edition Release 10.2.0.3.0 - 64bit Production
With the Partitioning, OLAP and Data Mining options
$ tkprof /oracle/admin/arpdb/bdump/arpdb_mmnl_487432.trc
output = arpdb_mm1.txt
TKPROF: Release 10.2.0.3.0 - Production on Tue Jul 14 17:31:29 2009
Copyright (c) 1982, 2005, Oracle. All rights reserved.
$
5, 内存的调整
具体调整需要结合系统运行的应用程序对症下药,如调整minperm/maxperm将改变内存与PAGING SPACE之间的交换算法,调整minpgahead/maxpgahead将改变内存块请求机制,调整minfree/maxfree将改变内存紧张时的内存清理刷新机制,等等。如果数据库使用裸设备,并且没有太多其他的应用,因为裸设备不需要文件系统的缓存,所以可以降低minperm,maxperm,maxclient的默认值,降低操作系统对内存的不必要的占用。
案例:
计费数据库数据库响应变慢,内存16G,裸设备,却存在很多的PI,PO情况。
在检查与内存相关的系统参数,发现如下问题:
minperm% = 20, maxperm% = 80, maxclient% = 80
说明:以上三个参数为系统缺省配置,其表示,使用文件系统时,最多可使用80% * 16G=10.8G,用于缓存所访问的文件。
结论:由于以上参数采用系统缺省配置,文件系统缓存最大可以达到10.8G,在执行大量的文件cp操作后,系统的可用内存量迅速下降,在其后的计费过程中,由于大量page in/page out操作引起系统严重性能瓶颈。
优化:
将maxperm% = 30 ,maxclient% = 30
#vmo –o maxperm%=30 –P
#vmo –o maxclient%=30 –P
5.2以前版本
/usr/samples/kernel/vmtune –p 20 –P 30
/usr/samples/kernel/vmtune –t 30
AIX系统Memory性能评估

最新推荐文章于 2025-09-12 18:07:57 发布
