AIX:数据库运行时间长数据库性能就变慢_MySQL, Oracle及数据库讨论区_Weblogic技术|Tuxedo技术|中间件技术|Oracle论坛|JAVA论坛|Linux/Unix技术|hadoop论坛_联动北方技术论坛  
网站首页 | 关于我们 | 服务中心 | 经验交流 | 公司荣誉 | 成功案例 | 合作伙伴 | 联系我们 |
联动北方-国内领先的云技术服务提供商
»  游客             当前位置:  论坛首页 »  自由讨论区 »  MySQL, Oracle及数据库讨论区 »
总帖数
1
每页帖数
101/1页1
返回列表
0
发起投票  发起投票 发新帖子
查看: 4841 | 回复: 0   主题: AIX:数据库运行时间长数据库性能就变慢        下一篇 
yang lin
注册用户
等级:上等兵
经验:144
发帖:8
精华:0
注册:2012-3-27
状态:离线
发送短消息息给yang lin 加好友    发送短消息息给yang lin 发消息
发表于: IP:您无权察看 2012-3-27 10:17:12 | [全部帖] [楼主帖] 楼主

适用于:

Oracle Server - Enterprise Edition - Version: 9.2.0.1 and later   [Release: 9.2 and later ]
z*OBSOLETE: Bull Escala RL AIX (64-bit)
IBM AIX on POWER Systems (64-bit)
z*OBSOLETE: IBM AIX 4.3 Based Systems (64-bit)
IBM AIX on POWER Systems (32-bit)
IBM AIX Based Systems (64-bit)IBM AIX Based Systems (32-bit)Bull Escala RL AIX (64-bit)IBM AIX 4.3 Based Systems (64-bit)
Oracle databases running on AIX based systems.


症状


数据库的运行时间长了数据库性能继续变得越来越慢。你也许注意到数据库运行得越久分页空间的运用总量继续增加,然而,当重启系统,或者关掉重启数据库之后数据库性能回到正常状态。

    随着对系统关键锁存器比如“缓冲区”和“共享池”锁存器争用的增加就会出现减慢。

原因

很可能你没有调整AIX的虚拟机管理程序。AIX的虚拟机管理程序的系统默认值通常不适用于关系数据库的默认。AIX的虚拟机管理程序的默认值将逐步上升到用于缓冲文件I/O物理存储器的80%。由于oracle已经将缓冲区文件I/O放到系统全局区,同样的数据没有必要缓存两次,留下了20%的物理内存用来运行oracle数据库和其他程序。这些主要的原因导致物理内存的浪费,因此导致数据库的性能受到很大的影响。

本文中以下信息是不适用的,或影响可能非常的小,如果你用一个或更多的下面的数据文件存储类型,因为AIX不会将缓存文件I/O缓存到这些类型:

逻辑容量,用于并发I/O(CIO)或直接I/O(DIO)选项的文件系统如果数据库在存档模式,和写入文件系统而没有用CIO或DIO的文件,那么这篇文章依然适用,即使位于逻辑容量或用于CIO或DIO文件系统的数据文件。

如果你的恢复管理器备份将被写入一个没有用CIO或DIO的文件系统中,那么这篇文章依然有用,即使这个数据文件位于一个逻辑容量或一个用于CIO或DIO的文件系统。

没有“内嵌”对oracle database 9ir2(9.2.0)或更低版本的支持,虽然你可以强迫使用企业的CIO(JFS2)或CIO(JFS)和文件系统上的选择。

请注意,调整AIX VMM已经超出了Oracle的支持范围。你不应该创建一个SR关于信息的在这篇文章里面,因为Oracle辅助人员不熟悉关于AIX VMM的调整。如果你必须得到帮助关于检查,设置,或调整AIX VMM这些超出本文范围的问题,你必须联系你的AIX系统管理员或IBM对更多帮助的支持。

解决方案

核对你的系统是否用的是AIX VMM的未设置的默认值,运行下面的命令:

command:
/usr/sbin/vmo -a


如果你没有/usr/sbin/vmo文件你应该请你的AIX系统管理员加载AIX文件集"bos.perf.tune",vmo的命令将列出所有的VMM参数和他们的当前值。你要审查的参数:

MINPERM%, MAXPERM%, 和 MAXCLIENT%

下面是一个例子vmo的报告:

# vmo –a
memory_frames = 1572864
pinnable_frames = 1431781
maxfree = 1088
minfree = 960
minperm% = 20
minperm = 294356
maxperm% = 80
maxperm = 1177427
strict_maxperm = 0
maxpin% = 80
maxpin = 1258292
maxclient% = 80
lrubucket = 131072


未设置的系统默认值是MINPERM%=20%, MAXPERM%=80%, MAXCLIENT%=80%,这些参数没有“正确”的值,只有广泛的测试,才能得到最佳的值,对于在相同系统中不同的数据库最优值可能不一样,所以记住当调整VMM和选择值应该就你将运行于系统的数据库来看,使用下列值作为一个起始点:

MINPERM% = 10-15%, MAXPERM% = 20-30%, MAXCLIENT% = MAXPERM%


得到一个片段多少物理内存被AIX的文件I/O缓冲,运行下面的命令:

/usr/bin/svmon -G


Svmon命令成为同一个vmo属于的AIX文件集“bos.perf.tune”。最后一行的svmon输出应该是“in use”,把"in use / pers" 和"in use / clnt"的值相加。现在用"memory / size"的值除以相加后的值。对于数据库性能好的,一般这个值不会超过30%(0.30)。

下面是一个关于svmon输出的例子:

# svmon -G
size       inuse     free        pin     virtual
memory  131072   129432   1640   11704   50091
pg space 262144   100913
work       pers      clnt  lpage
pin      11704           0         0     0
in use  47062   76126   6244     0


在这个例子,(in use / pers) 76126加上(in use / clnt) 6244等于82370。82370除以(memory/size)131072等于0.628或大约63%的物理系统被AIX文件I/O缓冲。这表明,AIX VMM需要进行调整以便有更多的物理内存给oracle和其他程序用,少的物理内存用于文件I/O的缓存。

记住,虽然AIX把这些内存和oracle进程联系起来(因为oracle需要文件I/O),所有的内存使用的文件I/O缓冲是完全分配和AIX控制,没有oracle,如果你需要帮忙检查,设置,或调整AIX VMM,联系你的系统管理员或IBM的支持。你可能也想复习AIX“性能管理指南”

更新:在这篇文章开始写之后,IBM介绍了新的VMM参数,这个参数也对这个错误非常有帮助。这个参数是。。。

lru_file_repage


缺省值是“1”,但是建议设置为“0”。这个设置暗示VMM只窃取文件页面(从AIX文件缓存),把计算页(从SGA)单独留下

这个新的w lru_file_repage参数只对AIX 5.2 ML04或更高版本和AIX 5.3 ML01或更高版本。

注解:如果你用的是不支持lru_file_repage参数的旧AIX系统,那么你必须用上面的“legacy”设置。如果你用的是一个新的支持lru_file_repage参数的AIX系统,那么你应该用下面修正后的设置代替。

作为记录在IBM“VMM TuningTip”参考下面,如果你用的是AIX 5.2 ML 04或者更高版本,IBM修正推荐下列设置:

strict_maxperm=0 (default)
strict_maxclient=1 (default)
lru_file_repage=0
maxperm%=90
minperm%=5 (physical RAM <32 GB)
minperm%=10 (physical RAM >32 GB but <64 GB)
minperm%=20 (physical RAM >64 GB)
v_pinshm=1
maxpin%=percent_of_real_memory
(IBM不推荐减小maxpin%的值。)




赞(0)    操作        顶端 
总帖数
1
每页帖数
101/1页1
返回列表
发新帖子
请输入验证码: 点击刷新验证码
您需要登录后才可以回帖 登录 | 注册
技术讨论