下面是在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
©著作权归作者所有:来自51CTO博客作者7343696的原创作品,如需转载,请注明出处,否则将追究法律责任
aix sga oracle largeORACLE 基础