您的位置:首页 > 大数据 > 人工智能

DB2最佳实践(AIX6.1)——虚拟内存配置

2012-02-19 15:10 357 查看
AIX的虚拟内存管理器(VMM)将内存空间分为两类:

计算类(computational memory)

指应用程序和内核使用的内存

非计算类(non-computational memory)

指文件系统的缓存,例如JFS、JFS2、NFS、GPFS等。这一类内存空间也叫做持久内存(permanent memory)。这里面除了JFS,其他类型文件系统的缓存也叫做客户内存(client memory)。全部的文件系统缓存的大小由numperm系统参数记录。客户内存(client memory)的大小由numclient参数记录。该类内存的空间大小由minpermmaxperm系统参数限定。客户内存对物理内存的占用率由maxclient%系统参数限定。

在系统运行过程中,VMM维护着一个空闲内存页列表,该列表记录着系统中每个空闲的物理内存页。随着空闲内存页不断的分配使用,空闲内存页列表中的内存页的数量不断减少,当数量低至系统参数minfree设定的数值时,VMM就会开始对已分配的内存页进行扫描和清理,即将这些内存的内容写回磁盘(文件系统:非计算类或交换空间:计算类),然后将内存页变成空闲内存加入到空闲内存页列表。这个扫描和清理操作一直继续,直到空闲内存页列表中的内存页数量达到系统参数maxfree设定的数值。

执行内存页清理的进程叫lrud。lrud在工作时会遵循以下的规则:

1)如果客户内存的物理内存占用率达到系统参数maxclient%的设定值,那么lrud只清理客户内存空间的内存页。当系统参数strict_maxclient设为1时,那么当客户内存的物理内存占用率达到系统参数maxclient%的设定值时,lrud就马上开始页清理工作。

2)如果文件系统缓存的物理内存占用率到系统参数maxperm%的设定值,那么lrud只清理文件系统缓存的内存页。

3)如果文件系统缓存的物理内存占用率低于系统参数minperm%的设定值,那么lrud只清理计算类的内存页。

4)当lrud开始工作时(即空闲物理内存数量低于minfree或客户内存超过maxclient%且strict-maxclient为1),会判断应该清理计算类内存还是清理非计算类内存。如果lru-file-repage设为0,那么只要非计算类内存的数量高与minperm,lrud就只清理非计算类内存

DB2数据库使用的内存大部分都是计算类内存,如果在获取数据时,需要执行从磁盘(文件系统或交换空间)读取到内存的操作,就会造成严重的性能下降。为了保护计算类内存在物理内存中的驻留时间,DB2对AIX虚拟内存的参数设置有如下的建议:

minfree 4096(内存总数小于8GB)

8192(内存总数大于8GB)

maxfree minfree + 512

maxclient% 90%

maxperm% 90%

minperm% 3%

strict_maxclient 1

lru_file_repage 0

如果表空间有使用文件系统缓存,可以考虑修改表空间的参数关闭文件系统缓存的使用。

其他VMM相关的系统参数不建议改动。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: