WEB开发网
开发学院操作系统Linux/Unix IBM AIX V5.3 系统管理(Test 222)认证指南系列,第... 阅读

IBM AIX V5.3 系统管理(Test 222)认证指南系列,第 4 部分:监视和性能优化(上)(2)

 2008-11-10 08:29:00 来源:WEB开发网   
核心提示:系统日志配置为了记录系统消息,AIX 5L 使用了 syslogd,IBM AIX V5.3 系统管理(Test 222)认证指南系列,第 4 部分:监视和性能优化(上)(2),syslogd 守护进程读取一个数据报套接字,并将每个消息行发送到由 /etc/syslog.conf 配置文件描述的目标,但是删除虚拟处理器

系统日志配置

为了记录系统消息,AIX 5L 使用了 syslogd。syslogd 守护进程读取一个数据报套接字,并将每个消息行发送到由 /etc/syslog.conf 配置文件描述的目标。syslogd 守护进程在被激活时和收到挂起信号时读取该配置文件。

syslogd 守护进程创建 /etc/syslog.pid 文件。此文件包含单个行,其中带有 syslogd 守护进程的命令进程 ID。此文件用于结束或重新配置 syslogd 守护进程。

发送到 syslogd 守护进程的终止信号将结束该守护进程。syslogd 守护进程记录结束信号信息并立即终止。

每个消息为一行。消息可以包含优先级代码,此代码由位于行首的尖括号 (< >) 中包含的数字来标记。长度超过 900 字节的消息可以截断。

/usr/include/sys/syslog.h 包含文件定义了配置文件使用的功能和优先级代码。本地编写的应用程序使用 syslog.h 文件中包含的定义,从而通过 syslogd 守护进程记录消息。

syslogd 命令的一般语法如下所示:

syslogd [ -d ] [ -s ] [ -f ConfigurationFile ] [ -m MarkInterval ] [-r]

表 3 提供了启动 syslogd 时常用的标志。

表 3 用于 syslogd 守护进程的常用标志

标志 描述
-d 打开调试。
-f Config File 指定替代的配置文件。
-m MarkInterval 指定标记命令消息之间相隔的分钟数。如果不使用此标志,则标记命令将每隔 20 分钟发送一条优先级为 LOG_INFO 的消息。包含一个 *(星号)的选择器字段将禁用此功能,此选择器字段将选择所有其他功能。
-s 指定为本地系统上生成的所有转发 syslogd 消息转发一条缩短的消息到另一个系统(如果作此配置的话)。
-r 禁止对从远程主机收到的消息进行日志记录。

syslogd 守护进程使用一个配置文件,以根据消息的优先级和生成消息的功能来确定将系统消息发送到何处。缺省情况下,syslogd 读取缺省配置文件 /etc/syslog.conf,但是如果指定了 –f 标志,则可以指定替代的配置文件。

syslogd 配置文件

/etc/syslog.conf 文件控制 syslogd 守护进程的行为。例如,syslogd 使用 /etc/syslog.conf 文件确定将错误消息发送到何处,或如何对不同的系统事件作出反应。下面是缺省的 /etc/syslog.conf 文件的一部分:

# @(#)34    1.11 src/bos/etc/syslog/syslog.conf, cmdnet, bos530 4/27/04
14:                                 47:53
# IBM_PROLOG_BEGIN_TAG
# This is an automatically generated prolog.
#
# bos530 src/bos/etc/syslog/syslog.conf 1.11
#
# Licensed Materials - Property of IBM
#
# (C) COPYRIGHT International Business Machines Corp. 1988,1989
# All Rights Reserved
#
# US Government Users Restricted Rights - Use, duplication or
# disclosure restricted by GSA ADP Schedule Contract with IBM Corp.
#
# IBM_PROLOG_END_TAG
#
.
.
.
(省略的行)
.
.
.
# /etc/syslog.conf - control output of syslogd
#
#
# Each line must consist of two parts:-
#
# 1) A selector to determine the message priorities to which the
#  line applies
# 2) An action.
#
# Each line can contain an optional part:-
#
# 3) Rotation.
#
# The fields must be separated by one or more tabs or spaces.
#
# format:
#
# <msg_src_list> <destination> [rotate [size <size> k|m]
[files <files>] [time <time> h|d|w|m|y] [compress][archive <archive>]]
#
# where <msg_src_list> is a semicolon separated list of <facility>.<
priority>
# where:
#
# <facility> is:
#    * - all (except mark)
#    mark - time marks
.
.
.
(省略的行)
.
.
.
# example:
# "mail messages, at debug or higher, go to Log file.File must exist."
# "all facilities, at debug and higher, go to console"
# "all facilities, at crit or higher, go to all users"
# mail.debug      /usr/spool/mqueue/syslog
# *.debug       /dev/console
# *.crit            *
# *.debug       /tmp/syslog.out   rotate size 100k files 4
# *.crit        /tmp/syslog.out   rotate time 1d

除了包含 syslogd 守护进程设置的 /etc/syslog.conf 文件外,/etc/syslog.pid 文件还包含正在运行的 syslogd 守护进程的进程 ID。

配置文件的格式

本部分描述 /etc/syslog.conf 文件的格式是什么,以及如何解释此文件中的不同条目。syslogd 守护进程配置文件中的行包含一个选择器字段和一个操作字段,两者之间由一个或多个制表符分隔。

选择器字段指定一个功能和一个优先级。功能名称之间用一个逗号 (,) 分隔,选择器的功能和优先级部分之间用一个句点 (.) 分隔,同一选择器字段中的多个条目之间用一个分号 (;) 分隔。要选择所有功能,可以使用一个星号 (*)。

操作字段确定要接收消息的目标(文件、主机或用户)。如果将消息发送到远程主机,远程系统将按照自己的配置文件中的指示来处理消息。要在用户的终端上显示消息,目标字段必须包含一个有效的已登录系统用户的名称。

功能

表 4 列出了 /etc/syslog.conf 文件中使用的部分功能。可以在选择器字段中使用这些系统功能名称。

表 4 /etc/syslog.conf 文件中使用的功能

功能 描述
kern 内核
user 用户级别
mail 邮件子系统
daemon 系统守护进程
auth 安全性或授权
syslog syslogd 守护进程
lpr 行式打印机子系统
news 新闻子系统
uucp uucp 子系统
* 所有功能

优先级

表 5 列出了 /etc/syslog.conf 文件中使用的优先级。可以在选择器字段中使用这些消息优先级。指定优先级和所有更高优先级的消息均按指示进行发送。

表 5 /etc/syslog.conf 文件的优先级

优先级 描述
emerg 指定紧急消息 (LOG_EMERG)。这些消息不分发给所有用户。可以将 LOG_EMERG 优先级的消息记录到单独的文件中以便检查。
alert 指定重要消息 (LOG_ALERT),例如严重硬件错误。这些消息将分发给所有用户。
crit 指定未分类为错误的关键消息 (LOG_CRIT),例如不适当的登录尝试。LOG_CRIT 和更高优先级的消息将发送到系统控制台。
err 指定表示错误条件的消息 (LOG_ERR),例如不成功的磁盘写入。
warning 指定表示异常但可恢复的条件的消息 (LOG_WARNING)。
notice 指定重要的信息性消息 (LOG_NOTICE)。没有指定优先级的消息将映射为此优先级。这些消息比信息性消息更重要,但不如警告。
info 指定信息性消息 (LOG_INFO)。这些消息可以丢弃,但是在分析系统时很有用。
debug 指定调试消息 (LOG_DEBUG)。这些消息可以丢弃。
none 排除选定的功能。仅当在同一选择器字段中的前面有一个带 *(星号)的条目时,此优先级才有用。

目标

表 6 列出了 /etc/syslog.conf 文件中使用的一些目标。您可以在操作字段中使用这些消息目标。

表 6 /etc/syslog.conf 文件的目标描述

目标 描述
File Name 以追加模式打开的文件的完整路径名称。
@Host 主机名称,前缀一个 @ 字符。
User[, User][...] 用户名。
*所有用户。

使用系统日志

要自定义 /etc/syslog.conf 文件以便满足所需的条件,应该通过编辑 /etc/syslog.conf 文件来更新系统日志。在编辑 /etc/syslog.conf 文件并向其添加自己的行以后,您需要重新启动 syslogd 守护进程。这可以通过运行以下命令来完成:

1. 检查以确定 syslogd 守护进程的进程 ID 是什么。在此例中,该进程 ID 是 17228:

# ps -ef | grep syslogd
root 217228 114906  0  Nov 16   - 0:00 /usr/sbin/syslogd
root 430306 290870  0 14:18:11 pts/0 0:00 grep syslogd

2. 使用 stopsrc 命令终止 syslogd 守护进程,如下所示:

# stopsrc -s syslogd
0513-044 The syslogd Subsystem was requested to stop.

3. 检查 syslogd 守护进程是否已成功终止:

# ps -ef | grep syslogd
root 364610 290870  0 14:20:22 pts/0 0:00 grep syslogd

4. 使用 startsrc 命令重新启动 syslogd 守护进程:

# startsrc -s syslogd
0513-059 The syslogd Subsystem has been started.Subsystem PID is 471258.

下面是 /etc/syslog.conf 文件用法的几个示例:

要将调试级或以上的所有邮件功能消息记录到文件 /tmp/mailsyslog,可以输入以下命令:

mail.debug /tmp/mailsyslog

其中:

mail 是功能。

debug 是优先级。

/tmp/mailsyslog 是目标。

要将除来自邮件功能以外的所有系统消息发送到名为 rigil 的主机,可以输入以下命令:

*.debug;mail.none @rigil

其中:

* 和 mail 是功能。

debug 和 none 是优先级。

@rigil 是目标。

要将来自所有功能的 emerg 优先级的消息和来自邮件及守护进程的 crit 及以上优先级的消息发送到用户 nick 和 jam,可以输入以下命令:

*.emerg;mail,daemon.crit nick, jam

其中:

*、mail 和 daemon 是功能。

emerg 和 crit 是优先级。

nick 和 jam 是目标。

要将所有邮件功能消息发送到所有用户的终端屏幕,可以输入以下命令:

mail.debug *

其中:

mail 是功能。

debug 是优先级。

* 是目标。

使用 /etc/tunables 文件进行优化

/etc/tunables 目录集中了可优化文件。可优化文件包含可优化的参数,这些参数打包在一个或多个称为“节”(stanzas) 的部分中。

一个节以一个包含节名称后面跟着一个冒号 (:) 的行开始。没有用于表示某个节结束的标记。它一直延续到另一个节开始。每个节包含一组参数/值对,每行包含一个参数/值对。值由双引号 (") 括起,一个等于号 (=) 将其与参数名称格式值分隔开。参数/值对必须属于某个节;它在节之外没有任何意义。带数字符号 (#) 的所有内容都视为注释并将其忽略。

可优化文件使用以下语法:

schedo:
%usDelta = "100"        # DEFAULT VALUE
affinity_lim = "7"       # DEFAULT VALUE
allowMCMmigrate = "0"      # DEFAULT VALUE
big_tick_size = "1"       # DEFAULT VALUE
no:
arpqsize = "12"         # DEFAULT VALUE
arpt_killc = "20"        # DEFAULT VALUE
arptab_bsiz = "7"        # DEFAULT VALUE

可优化文件当前支持七个不同的节:每个节分别用于每个可优化命令(schedo 、 vmo 、 ioo 、 raso 、 no 和 nfso),外加一个特殊 info 节。

/etc/tunables 下面的三个文件具有特殊的名称和意义:

nextboot 此文件在启动时自动进行应用。bosboot 命令也从此文件获取 bosboot 类型的可优化参数的值。其中包含已成为持久性值的所有可优化命令参数设置。

lastboot 此文件在启动时自动生成。其中包含完整的可优化参数集,以及它们在上次启动后的值。缺省值用 # DEFAULT VALUE 进行标记。

lastboot.log 这应该是 /etc/tunables 中唯一不属于这里描述的节格式的文件。它在启动时自动生成,并包含 lastboot 文件创建日志记录。所有参数更改都记录在此文件中,其中还记录了失败的更改。

六个命令节包含由对应的命令(有关完整的参数列表,请参见手册页)管理的可优化参数。

schedo 管理 CPU 调度程序可优化参数。

vmo 管理虚拟内存管理器可优化参数。

ioo 管理输入/输出可优化参数。

raso 管理可靠性、可用性和服务能力参数。

no 管理网络优化参数。

nfso 管理网络文件系统 (NFS) 优化参数。

vmo 命令用于取代早期 AIX 版本中使用的 vmtune 命令。

值可以是一个数值或字面单词 DEFAULT,此值被解释为该可优化参数的缺省值;或者是 STATIC,表示一个从不恢复的 Static 变量。有些节可能包含不存在的参数的值(在可优化文件是从运行旧版本 AIX 5L 的系统复制而来并且一个或多个可优化参数不再存在的情况下)。当您使用 tunrestore 或 tuncheck 命令时,将会显示有关此类参数的警告。

info 节用于存储有关可优化文件的用途和用于验证它的 AIX 5L 级别的信息。此节中可以接受任何参数;但是,有些字段具有特殊的含义。

下面的例子演示了一个示例 info 节:

info:

Logfile_checksum = "3444306214"
Description = "Full set of tunable parameters after last boot"
AIX_level = "5.3.0.30"
Kernel_type = "MP"
Last_validation = "2005-11-11 11:57:53 CST (current, reboot)"

表 7 解释了该节中的不同字段。

表 7

参数
描述 一个描述该可优化文件的字符串。SMIT 在文件选择框中显示此字段。
AIX_level AIX 5L 版本。此字段由 tunsave 和 tuncheck 自动更新(仅在成功时)。
Kernel_type "MP":多处理器内核。

"MP64":64 位多处理器内核。

Last_validation 次验证此文件的日期以及验证类型:

"current" 该文件已根据当前上下文进行了验证。

" reboot " 该文件已根据 nextboot 上下文进行了验证。

此字段由 tunsave 和 tuncheck 自动更新(仅在成功时)。

Logfile_checksum 与此可优化文件匹配的 lastboot.log 文件的校验和。此字段仅存在于 lastboot 文件中。

info 节的描述

AIX 5L 提供的用于处理可优化文件的命令包括:

tunsave 将当前可优化参数值保存到某个文件(备份)。

tunrestore 从某个文件恢复可优化参数值。

tuncheck 验证某个可优化文件。

tunchange 更新某个文件中的一个或多个可优化节。

tundefault 将所有可优化参数重设为其缺省值。

有关可优化命令的更多信息,请参考产品文档页。

使用可靠的可伸缩集群技术(Reliable Scalable Cluster Technology,RSCT)控制资源使用

RSCT 是一组软件组件,它们集合起来为 AIX 5L 和 Linux 提供一个全面的集群环境。RSCT 是多种 IBM 产品使用的基础设施,用于提供具有改进的系统可用性、可伸缩性和易用性的集群。还可以在独立系统上使用 RSCT。

基本的 RSCT 组件包括:

资源监视和控制(Resource Monitoring and Control,RMC)子系统。这是 RSCT 的可伸缩、可靠的中枢。它在单台计算机或集群的每个节点(操作系统映像)上运行,并提供单个系统或节点集群资源的公共抽象。可以将 RMC 用于单个系统监视,或者用于监视集群中的节点。但是在集群中,RMC 提供对整个集群中的子系统和资源的全局访问,从而为集群提供单一的监视/管理基础设施。

RSCT 核心资源管理器。资源管理器是资源(为其他某些组件提供服务的硬件或软件实体)和 RMC 之间的一个软件层。资源管理器将 RMC 中的编程抽象映射到实际的资源调用和命令中。

RSCT 集群安全服务,此服务提供允许 RSCT 组件对其他方的实体进行身份验证的安全基础设施。

拓扑服务子系统,此子系统在某些集群配置上提供节点/网络故障检测。

组服务子系统,此子系统在某些集群配置上提供跨节点/进程协调。

所有相同类型的资源都定义到各个资源类中。资源类设置了该资源类的实例所能具有的公共特征,而资源本身则包含特定的特别特征值。

要显示计算机上可用的类,可以发出 lsrsrc 命令:

# lsrsrc
class_name
"IBM.Association"
"IBM.ATMDevice"
"IBM.AuditLog"
"IBM.AuditLogTemplate"
"IBM.Condition"
"IBM.EthernetDevice"
"IBM.EventResponse"
"IBM.FDDIDevice"
"IBM.Host"
"IBM.FileSystem"
"IBM.PagingDevice"
"IBM.PhysicalVolume"
"IBM.Processor"
"IBM.Program"
"IBM.TokenRingDevice"
"IBM.Sensor"
"IBM.Sfp"
"IBM.ServiceEvent"
"IBM.ManagementServer"
"IBM.NetworkInterface"
"IBM.HostPublic"
"IBM.DRM"
"IBM.WLM"
"IBM.LPAR"
"IBM.LPCommands"

工作负载管理器

工作负载管理器(Workload Manager,WLM)允许系统管理员在工作之间划分资源。WLM 是 BOS 的一部分,它提供了用户社区与差异很大的系统行为之间的隔离。这可以防止具有某些特征(例如交互式或低 CPU 使用率的作业)的工作负载由于具有其他特征(例如批处理或高内存使用率的作业)的工作负载而导致实际的资源短缺。CPU 时间、内存和 I/O 带宽单独进行管理;因此可以管理不同风格的应用程序。

AIX 5L WLM 交付了赋予管理员更多控制权的基本能力,允许他们控制调度程序、虚拟内存管理器(Virtual Memory Manager,VMM)和设备驱动程序调用如何将 CPU、物理内存和 I/O 带宽分配给基于类的用户、组、应用程序路径、进程类型或应用程序标记。它允许指定类的层次结构、要按其特征自动分配到类的进程,以及进程到类的手动分配。类可以是超类或子类。当某个类中没有作业或者某个类不使用为它分配的所有资源时,WLM 将进行自我调整。资源将自动分配到其他类,以匹配系统管理员的策略。

注意:需要具备现有系统进程和性能的广泛知识才能高效地使用 WLM 。如果系统管理员为 WLM 配置极端或不准确的值,性能将会显著降低。

图 1 显示了 WLM 的示例设置。

图 1 WLM 实现示例

IBM AIX V5.3 系统管理(Test 222)认证指南系列,第 4 部分:监视和性能优化(上)(2)

分区负载管理器

AIX 5L 的分区负载管理器(Partition Load Manager,PLM)旨在自动化单个中央电子柜(central electronics complex,CEC)中的逻辑分区之间的内存和 CPU 资源的管理。为了改进资源利用,PLM 基于分区负载和优先级自动实现这些资源在分区之间的迁移;具有较高需求的分区将收到具有较低需求的分区捐献或减少的资源。一个用户定义的策略将控制如何移动资源。PLM 不会与 HMC 中的分区定义相抵触。相反,它在 POWER Hypervisor 提供的微分区功能之上增添了附加的灵活性。

有关分区在网络、磁盘和 CPU 资源隔离方面的优点的讨论,其他出版物已作了很好的阐述。LPAR 是服务器合并的主要工具。但是您如何管理它们呢?PLM 是一个解决办法。

PLM 是“高级 POWER 虚拟化”功能的一部分。它同时在运行 AIX 5L Version 5.3 或 AIX 5L Version 5.2 (ML4) 或更高版本的 IBM Systems p5 服务器的专用和共享处理器分区上受到支持。

PLM 操作模式

可以通过两种模式启动 PLM:

监视模式

管理模式

在监视模式下,PLM 报告提供许多有关所管理分区中的资源使用情况的统计信息。

在管理模式下,PLM 将启动动态重配置操作,以便按照已定义的策略使系统资源与分区工作负载匹配。

监视模式

用于监视分区状态的 PLM 命令是 xlpstat。此命令的语法是:

xlpstat [ -r ] { -p | -f } filename [ interval ] [ count ]

-p 开关指定将从启动 PLM 服务器时使用的给定策略文件中检索所管理分区的列表。或者,您可以在文本文件中提供所管理分区的列表,每行包含一个分区,并使用 –f 标志指定此文件。xlpstat 命令将查询所列分区的状态。此命令的输出并不区分由 PLM 积极管理的分区和未由 PLM 管理的分区。

-r 开关以原始模式打印输出,此模式更容易由脚本语言进行分析:

# xlpstat -p 2_groups
CPU           MEM
    ------------------------  ------------------
STAT TYP  CUR  PCT  LOAD   CUR  PCT PGSTL HOST
group2:
up  S   0.5  4.00  0.10   512 75.17   0 plmserver
up  S   0.50 85.45  0.44   512 99.17  129 vio_client2
group1:
up  D   1.00 95.09  0.19   512 99.23  129 app_server
up  D   1.00  0.39  0.09   512 74.73   0 db_server

此屏幕在单独的行上显示了每个所管理分区的状态(将各分区分组到 PLM 组中)。在上面的示例中,存在两个组。

STAT 列指示该分区是启动还是停止。在上面的示例中,所有分区都是启动的。

TYP 列显示该分区是使用共享处理器 (S) 还是专用处理器 (D),或者 xlpstat 命令是否无法查询该分区并且其状态未知(这显示为 U,通常是存在连接问题的迹象)。group 2 中的分区是共享的,而 group 1 中的分区则是专用的。

接下来的六列划分为两组,每组三列,一组针对 CPU 使用,另一组针对内存使用。CUR 列给出了 CPU 和内存的当前授权值,PCT 列给出了百分比利用率。LOAD 列指示 PLM 测量的 CPU 负载,PGSTL 列指示用页替换率测量的内存负载。

HOST 列给出了所管理分区的名称。

管理模式

PLM 使用客户机/服务器模型监视和管理分区资源,如图 2 所示。客户机充当每个所管理分区上的代理。PLM 服务器配置每个代理(客户机),并设定应该触发服务器通知的阈值。代理监视分区的资源使用,并在每次经过(利用不足或过度利用)PLM 设定的阈值时通知 PLM 服务器。基于用户定义的资源管理策略,PLM 服务器通过 HMC 调用动态重配置操作(dynamic reconfiguration,DR),以将资源从后备池移动到某个分区,或在分区之间移动资源。

图 2 PLM 体系结构

IBM AIX V5.3 系统管理(Test 222)认证指南系列,第 4 部分:监视和性能优化(上)(2)

PLM 允许实现分区组。各个组中的资源独立进行管理。图 2 中显示了两个分区组,一个针对生产分区,另一个针对测试和开发。

注意:下面是有关 PLM 服务器管理的要点:

PLM 服务器可以驻留在与所管理分区相同的服务器上的某个分区中,或者驻留在另一台计算机上。当 PLM 服务器在某个分区中运行时,它能够管理自己的分区。

可以在单个 AIX 5L 系统上运行多个 PLM 服务器。

某台给定服务器上的不同 PLM 组可以由不同的 PLM 服务器进行管理。

一个分区至多只能有一个 PLM 管理器。

并不要求对某个系统中的所有分区都进行管理。

一个 PLM 服务器只能管理一个所管理的 CEC 中的分区。

同一个 PLM 分区组中不能同时有共享处理器和专用处理器分区。

资源被约束到某个组:一个 PLM 组中的分区决不会从另一个组中的另一个分区获得资源。

一个分区组中至少存在两个活动分区。

由于每个分区是在本地进行监视的,并且仅当发生事件时代理才会与 PLM 服务器通信,所以 PLM 仅消耗微不足道的系统和网络资源量。

资源管理策略

资源管理策略在一个策略文件中定义所管理的分区、各分区的授权值和阈值,它也将分区组织到各个组中。策略文件定义要分配给分区的有保证和可变的 CPU 和内存资源,并在 PLM 服务器启动时加载。PLM 服务器是一个应用程序,它在某个逻辑分区中或在另一个系统上的任何 AIX 5L 系统上运行,并且是跨分区负载管理的聚焦点。有关 PLM 策略以及如何安装和配置 PLM 的详细讨论,请参见 Advanced POWER Virtualization on IBM System p5,SG24-7940。

由 PLM 管理的每个节点都必须在策略文件中进行定义,同时还要定义几个属性的值,例如:

可选的最大、最小和保证资源值

分区的相对优先级或权重

用于资源事件通知的上限或下限阈值

PLM 使用资源监视和控制(Resource Monitoring and Control,RMC)子系统进行网络通信。该子系统还用于与 HMC 通信,以收集系统信息和执行 PLM 配置 SSH 连接所需要的命令。PLM 通过 RMC 从资源管理代理处获得分区负载数据,并从 HMC 处获得 LPAR 配置。

如果某个分区拥有相对于需求的多余资源,或者需要附加的处理器或内存,则 PLM 服务器将通过 SSL 向 HMC 发送重配置命令,从而将资源从一个 LPAR 移动到另一个 LPAR。

图 3 显示了不同的分区状态和负载阈值。对于每个资源,都存在一个上限和下限负载阈值。每当越过某个阈值,PLM 就会接收到一个 RMC 事件。当资源负载超过上限阈值时,PLM 认为该分区需要额外的资源;该分区称为“请求者”。当资源负载低于下限阈值时,该分区成为潜在的捐献者。通常,仅当另一个分区进入针对同一资源的请求者状态时,才会从捐赠者处移出资源。当资源负载介于两个阈值之间时,PLM 认为可用的资源是足够的。

图 3 资源利用阈值

IBM AIX V5.3 系统管理(Test 222)认证指南系列,第 4 部分:监视和性能优化(上)(2)

加载后的策略文件是静态的;分区的优先级不会在高优先级的工作到达时更改。分区的优先级只能通过加载新的策略来更改。可以动态更改策略文件而无需停止 PLM。

资源分配

策略定义的一部分是组中每个分区的相对优先级。这是使用与 AIX 5L 工作负载管理器(Workload Manager,WLM)中使用的类似共享机制来实现的。分配给某个分区的份额数越大,其优先级越高。为了防止某些分区资源短缺,PLM 使用其当前资源量调整分区优先级。下面将描述这种机制。

当 PLM 接到某个分区进入请求者状态的通知时,它将按如下顺序查找资源:

空闲的未分配资源池。

资源捐献者。

具有所请求资源的较少份额、但是拥有的资源超过其可配置保证值所指定资源的分区。

如果空闲池中有资源,则将这些资源提供给请求者。如果空闲池中没有资源,则检查资源捐献者列表。如果存在资源捐献者,则将资源从捐献者移动到请求者。所移动的资源量是两个分区的最小增量值,或者是按照策略的规定将赋予它们相等优先级的资源量。如果不存在资源捐献者,则检查其资源超过保证值的分区列表。

确定哪个节点更应该获得资源是通过比较来实现的,即根据某个分区的份额数(权重)所指定的优先级,比较该分区相对于其优先级应该拥有多少资源。PLM 从具有多余资源的分区列表计算一个分区排序,包括请求分区。分区的优先级被定义为以下比率:

此比率的较低值表示较高的优先级;具有较低优先级值的分区可以从具有较高值的分区夺取资源。

图 4 显示了针对三个 Capped 分区中的 CPU 资源的该过程概况。负载不足的分区 3 是一个请求者。不存在空闲池中的空闲资源或可用的捐献者分区。PLM 寻找具有多余资源(超过其保证值的资源)的分区。组中的另外两个分区都拥有多余资源。分区 1 在所有分区中具有最高的多余/份额比率,资源将从分区 1 移动到分区 3。

图 4 PLM 资源分布

IBM AIX V5.3 系统管理(Test 222)认证指南系列,第 4 部分:监视和性能优化(上)(2)

如果对某个资源的请求得到考虑,则将该请求排入队列并在资源变得可用时重新进行评估。

资源分配约束

在指定 PLM 策略时必须考虑许多限制。

资源的最小、保证和最大值必须满足以下关系:最小值 <= 保证值 <= 最大值。

如果最小、保证和最大值全都具有相同的值,或者将组最大值设置为 0,则 PLM 将不管理资源。

与优先级无关,PLM 将不允许分区的每项资源低于其最小值或高于其最大值限制。

PLM 最大值和最小值的范围应该是 HMC 上设置的最大值和最小值范围的子集;否则,则使用 PLM 和 HMC 值的交集。

如果不为 PLM 最大值和最小值指定任何值,则将其缺省设置为 HMC 上的值。

内存管理

PLM 通过在分区之间移动逻辑内存块(logical memory block,LMB)来管理内存。LMB 的大小取决于 CEC 中安装的内存数量。它介于 16 和 256 MB 不等。LMB 的大小可以用 HMC 上的高级系统管理接口(Advanced System Management Interface,ASMI)进行修改。

为了确定何时存在内存需求,PLM 使用了两个指标:

利用率百分比(使用中的内存与所配置的内存量之比)。

页面替换率。

AIX 5L 将利用对其可用的所有内存。除非需要从磁盘引入其他页面,否则它不会将页面移出内存。这意味着即使存在多余的内存,AIX 5L 也会使用该内存,并且即使没有任何应用程序使用该内存,AIX 5L 工具也会将其报告为“已使用”。因此,分区很少成为捐献者。

处理器管理

对于专用处理器分区,PLM 将物理处理器一次一个地从没有利用它们的分区或具有较高多余权重的分区,移动到需求它们的分区。这使得专用处理器分区能够更好地利用其资源,例如,从日末事务平稳过渡到夜间批处理作业。

对于共享处理器分区,PLM 管理有权使用的容量和虚拟处理器(virtual processor,VP)的数量。当某个分区请求更多处理器容量时,如果有附加的处理器容量可用,则 PLM 将增加请求分区有权使用的容量。PLM 可以增加虚拟处理器的数量,以提高 capped 和 uncapped 分区在高负载条件下使用更多处理器资源的潜力。相反,PLM 还将在低负载条件下减少有权使用的容量和虚拟处理器数量,以更高效地利用基础物理处理器。

注意: AIX 5L Version 5.3 ML3 中引入的虚拟处理器折叠优化 (folding optimization) 致使 PLM 执行的虚拟处理器计数管理在大多数情况下变得不必要,但是删除虚拟处理器要比 VP 折叠更为高效,因此在某些情况下, PLM 执行的虚拟处理器管理也许是适宜的。

Tags:IBM AIX

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接