IBM为AIX提供了行业最广泛的数据库服务器,并针对每种业务需求进行了优化:
DB2 :适用于需要最大灵活性和性能的各种解决方案。 IDS :用于近乎免提的管理以及交易密集型解决方案的高可用性。 U2 :用于快速灵活地开发需要动态数据记录的解决方案。作为系统管理员,您应该已经了解了内存,CPU和磁盘I / O的一些基础知识(有关这些主题的文章,请参阅参考资料部分)。 您可能不完全了解VMM在AIX中的工作方式,这对Oracle意味着什么。 您还将发现,由于近年来许多AIX调整命令和参数已发生更改,因此Oracle也发生了变化,并且诸如Oracle Enterprise Manager之类的实用程序也发生了变化,您一定要花一些时间来使用它,这是一个重要的实用程序。学习并添加到您的曲目。
本文详细讨论了AIX VMM和将用于调整内存的调整命令。 它还介绍了您将要使用的一些监视工具,这些工具将帮助您进行调整。
在开始之前,请务必注意,您必须对自己的工作有一个整体的认识。 确保使用正确的变更控制流程; 一次只能进行一项更改,并在将更改引入其他环境(尤其是生产环境)之前非常仔细地监视更改。 性能调整确实是一个反复不断的过程,您经常会发现,通过解决一个瓶颈,您将创建另一个瓶颈,只要您不断寻求改善系统的运行状况就可以。 确保您从一开始就开始监视系统,远早于用户对性能降低的尖叫声之前。 除非您知道运行状况良好的系统是什么样,否则您如何才能知道运行不佳的系统是什么样的系统? 正确的基准是关键。 我们将要研究的系统在具有一个CPU和4GB RAM的POWER5™LPAR上运行Oracle 10g-10.1.0.2.0和AIX 5.3 TL7。
在本节中,我们将回顾与AIX和Oracle有关的内存。 我们将讨论AIX如何使用虚拟内存以及它与Oracle的关系。 我们还将分析数据并调整子系统。
让我们从VMM开始。 重要的是要了解,VMM服务于系统中的所有内存请求,而不仅仅是虚拟内存。 访问RAM时,即使包装盒上有足够的物理内存,VMM也必须分配空间。 这有时会使DBA和系统管理员感到困惑。 它通过使用称为早期分配调页空间的过程(通过将段划分为页面)来实现此目的。 这些页面可以是RAM或调页空间(存储在磁盘上的虚拟内存)。 同时,VMM维护未分配页面框架的可用列表,这些列表框架用于满足页面错误。 VMM具有页面替换算法,该算法分配页面框架并确切确定当前RAM中的哪些虚拟内存页面将其页面框架带回到空闲列表中。
此外,AIX操作系统将使用所有可用内存,但配置为未分配的内存(称为空闲列表)除外。 显然,管理员更喜欢使用物理内存,而不是物理空间可用的调页空间。 VMM将内存段分为两类:持久段和工作段。 持久段使用文件内存,而工作段使用计算内存。 这对我们意味着什么? 这是您SQL查询访问数据库时使用的计算内存。 这些是工作段,将在过程完成时终止。 这些路段没有实际的永久位置。 另一方面,文件内存使用永久段,并且在磁盘上确实具有永久位置。 它们通常将保留在内存中,直到页面被盗或数据库被回收为止。 同样,您希望文件存储器分页到磁盘,而不是计算存储器。
我们如何调整我们的系统? 一个值得讨论的关键参数是转换后备缓冲区(TLB)。 Oracle之类的应用程序利用了大量的虚拟内存,因此使用大页面可以显着提高性能。 增加此缓冲区的大小可使系统映射更多的虚拟内存,从而导致使用大量虚拟内存的应用程序(例如Oracle)的未命中率降低。 这包括OLTP和数据仓库应用程序。 Oracle将大型页面用于其SGA,因为实际上是SGA支配了虚拟内存。 在AIX 5.3及更早版本中,我们将使用vmo; 在此之前,我们使用了vmtune。
让我们使用vmo查看参数,如清单1所示。
使用以下命令,我们将分配16777216字节以提供大页面,其中包含256个实际大页面:
# vmo -r -o lgpg_size=16777216 lgpg_regions=256。
同时,对于Oracle Database 10g,请确保将LOCK_SGA Oracle初始化参数设置为TRUE,以便Oracle在分配共享内存时请求大页面。 到目前为止,两个最重要的vmo设置是minperm和maxperm 。 我们使用这些参数来确定我们的系统偏爱计算内存还是文件内存。 我们要做的第一件事是确保lru_file_repage参数=0。此参数是AIX 5.3的ML1中引入的,它确定是否考虑了VMM repage-counts以及应该窃取的内存类型(请参见清单2)。
如清单2所示,默认值为1,因此我们需要使用vmo进行更改(请参见清单3)。
将此设置为0表示VMM您只想窃取文件页面而不窃取计算页面。 因为如果numperm < minperm或> maxperm ,这将改变,我们将使maxperm高而minperm非常低。 几年前,在引入lru_file_repage参数之前,我们曾经使maxperm低。 如果我们现在这样做,我们将停止当前正在运行的应用程序缓存程序。
清单4显示了如何设置这些参数:
我们还想看看minfree和maxfree 。 当空闲列表中的页面低于minfree ,VMM将开始窃取页面,直到空闲列表增加了maxfree的数量,我们才希望发生这种情况。 这些值应类似于清单5中所示的值。
在本节中,我们将讨论与AIX和Oracle有关的CPU。 我们将讨论如何调整CPU子系统,并利用System p的最新创新来提高Oracle性能。
让我们从SMT开始。 这项重要的POWER5创新允许一个物理处理器同时从多个硬件线程分派指令的能力。 在AIX 5L Version 5.3中,通过打开SMT将使用一个物理处理器创建的专用分区配置为逻辑双向,这允许两个硬件线程同时在一个物理处理器上运行。 您应该始终将SMT留在Oracle上(参见清单6)。
让我们运行一个性能监视实用程序mpstat(请参见清单7)。
尽管我们的系统只有一个物理CPU,但是在分析我们的系统时可以看到两个逻辑CPU都同时启动。
值得一提的另一个重要实用程序是nmon,多年来它一直是我最喜欢的监视实用程序(参见图1)。
尽管nmon按CPU显示活动,但是您可以使用不同的标志显示Oracle进程正在使用的活动量。 此外,使用nmon分析器,您可以将信息下载到电子表格中,并编制高级管理人员希望看到的漂亮图表。
您还可以使用CPU进行其他一些重要操作:
处理器关联性-这允许进程在特定处理器上运行。 您实际上可以将特定进程与正在运行的进程相关联。 Nice和Renice-这些更改了运行进程的优先级。 不建议您放弃Oracle进程。另一个对监视CPU至关重要的实用程序是vmstat,它也可以Swift让您知道瓶颈所在。
在本节中,我们将讨论与AIX和Oracle有关的磁盘I / O子系统。 我们将回顾如何监视和调整I / O子系统,并讨论与I / O相关的一些重要子系统。
当我们的系统运行缓慢时,大多数没有经验的管理员通常都会使用CPU。 但是,磁盘I / O子系统可能会引起最多的问题。 在本节中,我们还将检查非常重要的异步I / O和并发I / O。
AIO确定Oracle在开始新处理之前是否正在等待您的I / O完成。 如果异步I / O调整不当,则会严重影响I / O子系统上写入的整体性能。 它的作用是允许系统在I / O在后台完成的同时继续处理。 由于进程可以在I / O进行的同时运行,因此可以显着提高性能。 我们可以使用iostat或nmon监视AIO子系统(请参见清单8)。
以下列表描述了用于监视AIO子系统的参数。
avfc :这将报告您间隔中每秒的平均快速路径请求计数。 avgc :这将报告您指定的时间间隔内每秒的平均全局异步I / O请求。 maxgc :自上次获取此值以来,它会报告最大的全局异步I / O请求。 maxfc :这将报告自上次获取此值以来的最大快速路径请求计数。 maxreqs :这是允许的最大异步I / O请求。在我们的情况下,AIO服务器不是系统瓶颈。
在AIX 5.2版中引入的CIO是一个非常重要的系统,您应该在Oracle环境中使用它。 与其前身直接I / O相似,打开后,它允许文件系统I / O绕过VMM并将数据从用户缓冲区直接传输到磁盘。 CIO允许多个线程同时向同一文件读取和写入数据,这是由于实现JFS2的方式所致,允许用户同时进行读取和写入。 为了打开它,您可以使用cio标志挂载文件系统: # mount -o cio /orafilesystem 。
这些要素对于CIO来说很重要:
原始设备-尽管某些Oracle DBA喜欢为其数据创建原始逻辑卷,并且几乎没有关于性能优势的争论,但是在大多数情况下,管理起来太困难了,通常我发现UNIX®管理员可以交谈Oracle DBA脱颖而出。 随着CIO的到来,除非性能是您所做的一切的驱动因素,并且您拥有可以维持这种环境固有的复杂性的人员,否则我不会使用原始逻辑卷。 分配财富-您拥有的纺锤越多,您分配的财富就越多。 您拥有的适配器越多,性能也会提高。 您还应该尝试保持索引并重做注销与数据相同的卷。 SAN-确保您花时间查看SAN。 优化硬件将比在操作系统级别上提供的任何帮助都多。在本部分中,我们将研究特定于Oracle的工具,这些工具可以帮助您进行AIX管理。
这是一个Oracle性能诊断工具,我强烈建议Unix管理员学习使用此工具。 设置并配置好之后,实际上并不难。 一旦安装了Oracle,就可以通过sql完成此操作。 收集选项实际上有两种: level和threshold 。 您需要配置level参数,该参数控制从Oracle收集的数据类型。 threshold参数充当状态摘要表SQL语句集合的过滤器。
这是安装方法。 以Oracle身份登录系统后,启动sqlplus,然后按照指示执行步骤(请参见清单9)。
Oracle Enterprise Manager是我使用多年的工具。 为了打开它,您需要确保在安装Oracle或使用Oracle dbca实用程序创建数据库时首先允许它运行。 创建数据库后,您需要使用以下命令打开OEM: $ emctl start dbconsole 。
这是您将在浏览器中放置的内容: http://lpar21ml16ed_pub:5505/em 。
登录后,您将看到类似图2的内容。
在OEM中您可以监视和调整的东西太多,以至于实际上有关于此实用程序的书籍。 如果您在Oracle环境中工作,这是必须使用的系统。
在本文中,我们介绍了与Oracle有关的性能调整的概念。 在分析和调整系统时,我们研究了内存,CPU和I / O子系统。 我们捕获了数据并分析了更改的结果。 我们讨论了重要的系统,例如并发I / O,以及为什么实施这些系统将有助于我们的系统更好地运行。 我们还讨论了一些重要的内核参数,它们的作用以及如何对其进行调整。 同时,我们注意到了多年来的一些重要变化以及我们对某些参数的处理方法。 我们还研究了一些特定于Oracle的实用程序,以及它们如何帮助我们作为AIX系统管理员。
翻译自: https://www.ibm.com/developerworks/aix/library/au-aixoracle/index.html
相关资源:linux oracle重新启动