分类:
2006-06-20 23:05:36
这一章节讲述了基于 POWER4 系统分区运行的一些内幕和指南,如性能的计划、监控和调优等。想进一步了解分区及其实施,参见 or Hardware Management Console Installation and Operations Guide.
本章包括以下几个方面:
POWER4 系统有多种配置方法,如:
应用工作负载因系统的性能特点不同而不同。
分区带来了硬件使用上的灵活性,这一点在应用软件和大量的处理器不匹配或需要分区的灵活性时尤为重要。在这些情况下,在多个小分区上运行一个程序的多个实例比运行一个大的实例能产生更大的吞吐量。例如,一个设计成单进程并几乎没有线程化的程序,会在 2 路系统或 4 路系统上运行得很好,而在大型的 SMP 系统中则会受到限制。将这个程序运行于小的 CPU 分区并行集要优于重新设计这个应用程序以便充分利用大量的 CPU。
在作一些详细的、变化不大的分析时可采用逻辑分区来提高性能。系统管理程序和固件掌管内存映射、分区的 CPU 和适配器。应用程序并不知道分区内存的位置,哪块 CPU 被指定,或哪个适配器正在使用。在性能监控和调优时有许多注意事项,它们包括 CPU 使用的内存的位置, 2 级和 3 级高速缓存共享,系统管理程序管理被分区环境的开销等。
下列操作系统可以运行基于 POWER4 的分区:
AIX 4.3 和更早版本的操作系统不支持分区。
一个系统的每个分区可运行不同级别的操作系统。分区是设计用于隔离运行在不同分区的软件的。这种隔离可防止正常的软件中断和恶意的对 LPAR 的攻击。不可跨分区访问数据,也不可以通过正常的网络连接访问数据。一个分区的软件崩溃,包括应用软件崩溃和系统软件崩溃,不会导致其它分区的破坏。使用共享底层硬件资源的分区不能不给其它分区使用这些共享资源的机会。例如,共享 PCI 桥的分区就不能无限长锁定 PCI 总线。
一些系统组件必须共同工作来实现和支持 LPAR 环境。处理器、固件和操作系统之间的关系需要每个组件都支持特定的函数。因此,一个完整的 LPAR 环境不仅仅依靠软件,硬件或固件,还需要以上三个组件之间的关系支持。 POWER4 微处理器支持更高级的系统调用,如系统管理程序模式。它允许授权的程序访问某些硬件设备。上述的支持也包括对处理器中的那些设备的保护。这种模式允许处理器访问此处理器所在分区之外的系统信息。系统管理程序使用小部分系统 CPU 时间和内存资源,所以一般带来的影响不大。
基于 POWER4 的系统可从多种分区启动:
某些基于 POWER4 的系统可以创建亲和性逻辑分区。这种特性依据每个分区所在的相对物理位置,自动决定了每个分区所使用的系统 CPU 和内存资源。HMC 把系统划分成对称的 4 处理器分区或 8 处理器分区的 LPAR。这种划分是以安装时所选定的管理员为依据的。处理器在 MCM 边界上关联起来。这种设计使系统成为一组具有相同群集节点的集合,可对科技工作负载提供性能上的优化。如果系统以这种模式启动,则不能以添加和删除 CPU 和内存的方式对资源进行调优。工作负载运行在亲和性逻辑分区上比在普通逻辑分区上可获得更多的性能。
在 AIX 上每个分区都有同样的工作负载管理设施。分区内运行的 AIX 工作负载管理器看起来没有什么区别。管理器并不跨分区管理负载。运行应用程序者可能曾经把 CPU 或内存指定给工作负载,并期望分区也可这样。将 CPU 指派给每个分区超越了系统程序管理器的管理范围,因此,从特定的 MCM 中分派一些 CPU 给某个负载是不可行的。系统程序管理器和 bindprocessor 命令仍能将派给的 CPU 绑定到特定的负载。
在为一套工作负载,应用程序,或解决方案选择使用分区还是使用负载管理时,有许多情况要考虑。通常认为分区适用于下列情况:
有效的性能隔离在支持分区的系统上对工作负载进行监控或调优时十分重要。在协同其它的紧急负载的同时实施有效的 AIX 负载管理是很困难的。监控和调优多重应用程序在隔离的分区里更切合实际。一些粒度资源可被指派给这些分区。
运行于 LPAR 模式的系统中系统程序管理功能一般只增加了正常内存和 I/O 操作的开销的 5%。同样的处理器,运行于 LPAR 模式下和运行于 SMP 模式下并没有显著的区别。同时运行多个分区对其它的分区没有太大的影响,但有时存在不同的特性。系统管理程序管理虚拟内存会带来一些额外的开销。这对大多数负载来说并不重要,可是开销会随着页面映射活动的增加而增加。在应用程序和大型 SMP 系统不很好地匹配时,分区可以把负载强制隔离到各自的分区上从而提高性能。
在基于 POWER4 的 MCM 系统中,不管内存在 MCM 的什么位置, rmss 从整个系统中分配内存。具体的性能特征因什么内存可用和什么内存指派到分区的不同而不同。例如,如果你使用 rmss 来模拟利用本地内存的 8 路分区,实际指派的内存不一定就是离 MCM 最近的物理内存。实际上, 8 个处理器也不一定就是一这个 MCM 上的 8 个处理器,而是从可用的处理器列表中指派的。
当取消一个 MCM 系统的 CPU 配置时,系统管理程序巧妙地隐式使用 MCM 和内存之间的路径。这些性能影响小时,会给具体的性能分析带来轻微的差别。
AIX 内存亲和性在 LPRA 模式下是不可用的。
为了知道哪些 CPU 被指派给 LPAR ,可选择 HMC 上被管理的系统对象并察看其属性。其中标签给出了指派给所运行分区的所有处理器当前的分配状态。 AIX 使用固件提供的号码,因此可以通过 CPU 号码和 AIX loc 代码了解分区中哪些处理器已被使用。
检查指派给一个 2 路分区 CPU 状态的操作如下:
> lsdev -C | grep proc proc17 Available 00-17 Processor proc23 Available 00-23 Processor
在基于 POWER4 的 MCM 系统上禁用 CPU 时,整个系统上所存在的 CPU 仍可通过控制信息流,也可访问内存。-这将对负载的整个性能带来一定的影响。
通常,应用程序不知道它自己是否运行在 LPAR 里。系统管理员知道这一点,但这些信息被屏蔽在应用程序之外。另外, AIX 运行在一个分区中和运行在一个独立的服务器上是一样的。无论从应用程序的角度或系统管理员的角度来看都没有什么不同。即 LPAR 对 AIX 应用程序和一般的 AIX 性能工具来说是透明的。第三方应用程序只需要某个级别的 AIX 认证即可。
在运行于 AIX 5L 上的应用程序里 uname 命令的执行情况如下:
> uname -L -1 NULL
返回的字符串中“ -1 ”表示系统运行于 SMP 模式而不是带逻辑分区运行。
对于 AIX 5L 分区上的应用程序,这个命令会给出在 HMC 管理下的分区号和分区名:
> uname -L 3 Web Server
由此可知在查找和评估性能微小的不同时,在 LPAR 下运行应用程序是很有帮助的。
每个分区并没有物理控制台。虽然物理串口可指派给分区,但每次只可被一个分区使用。出于输出终控制台信息和诊断的目的,固件为 AIX 提供了一个虚拟 tty 终端作为标准 tty 设备。虚拟终端的输出传给 HMC。 AIX 诊断子系统使用虚拟 tty 终端作为系统控制台。从性能角度上来讲,如大量数据写到系统控制台,HMC 控制台可监测到这一情况,到 HMC 的连接会受串口电缆连接的限制。
每个分区都有自己的日历时钟,因此每个分区可工作在不同的时区。每个分区之间相互通信的唯一方法是通过标准网络连接。在查看系统每个分区的记录文件或带时间戳的信息时,它们会因分区配置的不同而不同。
分区后 uname -m 命令给出了许多系统信息。给出的序列号是系统的序列号,各个分区都一样。
分区时要指定一块必须有的,有最基本容量的内存。在评定系统重启所改变的性能时,要知道底层资源的可用度导致内存和 CPU 分配的变化是很重要的。同时也要记住从 HMC 分配给分区的内存大小就是当地的内存大小。在分区里一些内存被系统管理程序页面表传输功能用掉了。
内存是依据系统分配的。分区里的应用程序不能决定内存的物理分配。
因为每个 LPAR 在逻辑上可以看成是有不同 IP 的单独的机器,PTX 监控器把每个 LPAR 当成不同的机器。每个 LPAR 必须安装用于给出其统计数据的 PTX 代理程序 xmservd。 PTX 管理器 xmperf 能把 LPAR 视为一个整体,给出更好的 LPAR 的 CPU 粒度视图。xmperf 主控制台提供这些视图,但需要解释 LPAR 命名过程,从而使用户可以选择正确的 LPAR 及 LPAR 里的处理器。
3dmon 组件更新后可给出运行于单个系统上并可被识别的分区的摘要。和 xmperf 操作一样,3dmon视每个 LPAR 为独立的 SMP 机器。选择 LPAR 时可根据指派给它们的主机名。