在 AIX 中运行 Oracle

来源:互联网 发布:淘宝店铺卖点怎么写 编辑:程序博客网 时间:2024/05/16 06:50

作为一名系统管理员,您应该已经了解了有关内存、CPU 和磁盘 I/O(有关这些主题的更多文章,请参见参考资料部分)的一些基础知识。但您可能尚未充分了解的是,VMM 在 AIX 中的工作方式以及它对 Oracle所起到的作用。您还将发现,由于近些年来许多 AIX 优化命令和参数发生了更改,所以 Oracle 同样进行了更改,并且一些实用工具(如Oracle 企业管理器,它是一种非常重要的实用工具,您完全有必要仔细地研究这个工具,并将其添加到您的技能库中)也进行了更改。

本文将详细讨论 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查询访问数据库时,所使用的内存是计算性内存。这些都是工作段,并且将在该过程完成时终止。这些段没有真正的永久存储位置。另一方面,文件内存使用持久段,并且在磁盘中具有永久存储位置。通常它们将保存在内存中,直到偷取(置换)这些页面、或者回收数据库为止。同样,您希望将文件内存分页到磁盘中,而不是计算性内存中。

我们应该如何优化系统呢?有一个关键的参数需要介绍,那就是 Translation Lookaside Buffer (TLB)。因为像Oracle这样的应用程序会使用大量的虚拟内存,所以使用较大页面可以显著地提高性能。增加这个缓冲区的大小允许系统映射更多的虚拟内存,其结果是使得使用大量虚拟内存的应用程序(如 Oracle)的缺页率更低。这包括 OLTP 和数据仓库应用程序。Oracle 为它的 SGA使用了较大的页面,因为主要占用虚拟内存的实际上正是 SGA。对于 AIX 5.3 和更早的版本,我们将使用 vmo;在此之前,我们使用的是vmtune。

让我们来了解一些使用 vmo 时的参数,如清单 1 所示。


清单 1. 使用 vmo 的参数
                 
root@lpar21ml16ed_pub[/] > vmo -L lgpg_size
NAME CUR DEF BOOT MIN MAX UNIT TYPE
DEPENDENCIES
--------------------------------------------------------------------------------
lgpg_size 0 0 0 0 16M bytes D
lgpg_regions


root@lpar21ml16ed_pub[/] > vmo -L lgpg_regions
NAME CUR DEF BOOT MIN MAX UNIT TYPE
DEPENDENCIES
--------------------------------------------------------------------------------
lgpg_regions 0 0 0 0 D
lgpg_size

使用下面的命令,我们将分配 16777216 字节,以提供较大的页面(共 256 个较大的页面):







本文转自IBM Developerworks中国

      请点击此处查看全文

 
原创粉丝点击