AIX:数据库运行时间较长的数据库性能变慢
使用于:
Oracle服务器--企业版--版本:9.2.0.1或者更高版本
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)
AIX上的系统上运行的Oracle数据库。
症状
数据库的性能变得越来越差,时间长了就会停止运行。您可能还注意到一个数据库将保持运行的分页空间使用量的持续增加。然而,重启系统或者重启数据库之后,数据库的性能就会恢复正常。这种减速可以出现在当增加系统关键锁竞争时,如“库高速缓存”和“共享池缓存”闩锁。
原因
它可能是你有没有调整的AIX虚拟内存管理器(VMM)。AIX VMM的默认值一般不适合使用关系数据库。AIX VMM的默认值将逐步允许物理内存的80%被用于缓存文件I/O。因为oracle已经在SGA中缓存了文件I/O,同样的数据不需要再次被缓存,仅仅留下20%的物理内存来运行数据库和其它程序。这将导致Oracle数据库中的大部分被排挤出物理内存分页空间,从而大大影响数据库的性能。
如果你使用一个或者更多的下面的存储类型在数据文件中,本文中的信息将不会被使用,或将起到很小的影响,英文AIX不为这种类型缓存文件I/O:
原始逻辑卷,文件系统使用并发I/O,或者是直接I/O,如果数据库在归档模式,并且归档不是有并发I/O或者直接I/O方式被写入文件系统。那么本文仍然适用,即使数据文件位于一个原始逻辑卷或文件系统使用的CIO或DIO。
如果你的RMAN备份没有使用CIO和DIO方式而写入文件系统,那么这篇文章仍然有用。即使数据文件都位于一个原始逻辑卷或文件系统使用的CIO或DIO。
在oracle database9iR2或更新的版本中,没有内建的支持,虽然你可以强制使用CIO(JFS2)的或DIO(JFS)的文件系统的挂载选项。
请注意,调优AIX VMM是Oracle支持的范围之外。你不应该在这篇文章中创建SR的相关信息,因为oracle的支持人员不熟悉AIX VMM的调优。如果您需要帮助检查,设置或调整超出了本文所涉及的AIX VMM,你必须联系您的AIX系统管理员和/或IBM支持进一步的援助。
解答
要检查您的系统是否正在使用的AIX VMM不调谐的默认值,运行下面命令:
/usr/sbin/vmo -a
如果你没有在/ usr / sbin目录/ VMO文件,您需要有您的AIX系统管理员,加载的AIX文件集“bos.perf.tune”。vmo命令会列出所有的VMM参数和它们的当前值。要检查的参数是:
# 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命令是相同的文件集"bos.perf.tune"的一部分。为了获得最佳的数据库性能,此值一般应不高于30%。下面是svmon的输出的一个例子:
# svmon -G
size inuse free pin virtualmemory 131072 129432 1640 11704 50091pg space 262144 100913
work pers clnt lpagepin 11704 0 0 0in use 47062 76126 6244 0
在这个例子中,76126加6244等于82370。82370除以(内存/大小)131072等于0.628或者被AIX用于文件缓存I/O的物理内存的约63%。这表明AIX VMM需要进行调整,让更多的物理内存被甲骨文和其他进程使用,更少的物理内存被用来缓冲文件I / O。
记住,即使AIX用oracle进程关联内存(因为oracle内存要求文件I/O),所有的被用于缓冲文件I/O的内存完全被AIX分配和控制,而不是oracle。如果您需要帮助检查,设置,或调整了AIX VMM,请联系您的AIX系统管理员和/或IBM支持。您可能还需要审查的AIX“绩效管理指南”由IBM在下面的“参考”部分挂钩。
更新:最初被写这篇文章后,IBM推出了一个新的VMM参数,这也是对这个问题非常有帮助。参数是:
lru_file_repage
此参数默认值是1,但是建议设置为0,此设置提示VMM只窃取文件页面,留下计算页面。这个新的参数lru_file_repage仅在 AIX 5.2 ML04 版本或者更高的AIX 5.3版本有效。
注:如果你使用不支持lru_file_repage参数的老版本AIX系统,那么你必须使用“legacy”设置。如果你使用的AIX系统支持lru_file_repage参数,那么你应该使用下面的修复设置替代。
作为IBM的“VMM的优化提示”下面引用记录,如果您正在运行的AIX 5.2 ML04或更高,或AIX5.3 ML01或更高,IBM目前正在建议需要保护计算内存(如Oracle)的方案使用下面的VMM设置:
strict_maxperm=0 (default)strict_maxclient=1 (default)lru_file_repage=0maxperm%=90minperm%=5 (physical RAM <32 GB)minperm%=10 (physical RAM >32 GB but <64 GB)minperm%=20 (physical RAM >64 GB)v_pinshm=1maxpin%=percent_of_real_memory
(IBM does not recommend decreasing the maxpin% value. See the "Support for pinned memory" link in the References section below.)Where "percent_of_real_memory" = ( (size of SGA / size of physical memory) *100) + 3andSet Oracle database parameter LOCK_SGA to TRUE in the pfile/spfileandSum of all SGAs on the system do not exceed approximately 60% of physical memory
------------------------------------------------------------------------------
无障碍的外部网站链接
本文档可能包含链接到网站,甲骨文公司并不拥有或控制其他companiesor组织。