下面是在AIX平台上面关于SGA的大页面的配置与监控
1,aix支持的页的大小
AIX支持4种页的大小,但是并不是每一个硬件平台都同时支持4种,可以使用下面的命令来查看
- pagesize -a
- 4096
- 65536
- 16777216
- 17179869184
2,ORACLE启用大页的前提
ORACLE有下面三种类型的内存支持大页SGA,.DATA,.TEXT,这里只介绍SGA,因为正常情况下我们也只配置SGA的。
如果ORACLE要启用大页,那么ORACLE的user需要具有 CAP_BYPASS_RAC_VMM and CAP_PROPAGATE属性,如果是在RAC环境中,ROOT,GRID(11G)用户也要有CAP_BYPASS_RAC_VMM and CAP_PROPAGATE属性使用如下命令查看与修改
- [$(hostname):root:/u02]lsuser -a capabilities oracle
- oracle
- [$(hostname):root:/u02]chuser capabilities=CAP_BYPASS_RAC_VMM,CAP_PROPAGATE oracle
- [$(hostname):root:/u02]set -o vi
- [$(hostname):root:/u02]lsuser -a capabilities oracle
- oracle capabilities=CAP_BYPASS_RAC_VMM,CAP_PROPAGATE
3,AIX于大页相当的参数
lgpg_regions控制大页的个数lgpg_size控制页的大小,使用如下命令查看与修改
- [$(hostname):root:/u02]vmo -L lgpg_regions -L lgpg_size
- NAME CUR DEF BOOT MIN MAX UNIT TYPE
- DEPENDENCIES
- --------------------------------------------------------------------------------
- lgpg_regions n/a 0 0 0 B
- lgpg_size
- --------------------------------------------------------------------------------
- lgpg_size n/a 0 0 0 16M bytes B
- lgpg_regions
- --------------------------------------------------------------------------------
- [$(hostname):root:/u02]
- [$(hostname):root:/u02]vmo -p -o lgpg_size=16777216 -o lgpg_regions=64
4,计算lgpg_regions的个数
- num_of_large_pages = INT((total_SGA_size-1)/16MB)+1
- 比如32G的SGA num_of_large_pages=int(32*1024-1)/16+1=2048
5,修改 lru_file_repage
- 修改lru_file_repage为0,默认是1
6,查看oracle sga是否使用了large page
使用svmon命令来查看
- su - oracle
- ps vg|grep ora_smon*
- svmon -p PID
由于写文档这里登陆的主机不支持large page,所以这里拿了网上的一个图片
7,使用vmstat来查看large page使用情况
- [$(hostname):root:/u02]vmstat -l
- System configuration: lcpu=1 mem=2048MB
- kthr memory page faults cpu large-page
- ----- ----------- ------------------------ ------------ ----------- -----------
- r b avm fre re pi po fr sr cy in sy cs us sy id wa alp flp
- 1 1 91018 408381 0 0 0 725 5081 0 29 1274 80 3 9 76 11 0 0
本文转自7343696 51CTO博客,原文链接:http://blog.51cto.com/luoping/1168873,如需转载请自行联系原作者