确定哪些 AIX® 工具可用于监视给定解决方案的中央处理器(Central Processing Unit,CPU),并了解为何某些工具优于其他工具。本系列的讨论了优化方法和使用 CPU 性能优化过程的重要性。另外还简单介绍了一些在优化存储库时可以使用的性能工具,对 POWER CPU 进行了简要介绍,并讨论了 POWER 芯片发展中的体系结构提升如何为 System p™ 产品系列的硬件提升做出贡献。
本系列包含三个部分,讨论中央处理器 (CPU) 性能和监视的各个方面。本系列的第 1 部分简单介绍了如何有效地监视 CPU,讨论了性能优化的方法,并给出了会对性能造成影响(正面影响或负面影响)的注意事项。尽管本系列的第 1 部分已经详细说明了一些命令,但第 2 部分将更集中于实际 CPU 系统监视的细节,以及趋势分析和结果。第 3 部分重点讨论通过主动控制线程使用和其他方法来{zd0}限度地优化您的 CPU 性能。在整个系列文章中,我还将详细说明 AIX® CPU 性能优化和监视方面的各种{zj0}实践。
性能优化显然不只是运行一些命令然后观察结果。UNIX® 管理员需要知道将哪些工具用于何种目的,以及捕获数据的{zj0}方法是什么。有时候您可能没有 30 天时间来通过系统地分析数据确定趋势,而有时候甚至都用不了 30 分钟就能够准确地判断出您的瓶颈所在。不管怎么说,这就是 CPU 监视的主要目的——准确地确定瓶颈。除非所搜集的数据清楚地表明 CPU 是瓶颈,否则并不希望进行 CPU 优化。事实上,我们经常会发现瓶颈与内存或 I/O 相关,而不是与 CPU 相关的问题。 作为 AIX 管理员,最重要的职责之一就是优化您的系统。如果不首先监视系统并分析结果,就不能进行优化。对于长期趋势和短期(接下来数小时内必须完成的工作)问题均是如此。虽然可以使用特定工具仅对 CPU 进行分析,但对于给定环境,可能要使用在系统上寻找所有可能瓶颈的工具。正如您可能已经知道的,CPU 是系统中最快的组件。如果您的 CPU 是瓶颈,将会对整个系统的性能造成影响。在我介绍这些工具时,请您注意以下命令已在 AIX 5.3 中进行了增强,允许工具使用 Advanced Power Virtualization 报告有关共享分区的准确统计数据: 闲话少说,接下来让我们开始着手监视系统。
接下来我们将讨论在所有 UNIX 分发版本(Solaris 到 AIX)上可用的 UNIX 通用工具。虽然有些输出内容根据分发版本不同而有所变化,但大多数标志适用于所有 UNIX 系统。这些标志可帮助您动态地收集信息,但我不会依赖其确定历史趋势和进行分析。 我们首先讨论 vmstat。vmstat 报告关于进程、内存、分页、被阻塞的 I/O 及总体 CPU 活动的信息。虽然这个工具与虚拟内存相关(vmstat 中的 vm),但我发现在主机上运行 vmstat 可以让我快速而准确地确定 AIX 服务器上发生的情况。
您刚刚听到了我们非常不愿意听到的抱怨“为什么系统这么慢?”,需要快速进行分析,以确定可能的瓶颈位置。vmstat 是开始进行此工作的{zh0}工具。有关运行 vmstat 的示例,请参见。
此处要注意的最重要字段有:
让我们看看{zh1}一个部分(在大部分其他 CUP 监视工具中也提供此信息,不过使用的标题不同):
显然,此系统没有瓶颈。如何确定的呢?让我们看一看 vmstat 输出中要分析的更为重要的字段。尽管此系统运行的是 AIX 5.3,将不会看到物理处理器的数量或使用的可用容量的百分比,因为它不在微分区环境中运行。如果在微分区环境中运行,将看到这些额外的字段,因为对 vmstat 进行了增强,可以在虚拟环境和微分区环境工作。 如果您的 us 和 sys 条目都平均高于 80%,很可能遇到了 CPU 瓶颈。如果上升到了 {bfb},您的系统就真的太繁忙。如果这些数字很小,但 wa(等待 I/O)很高(通常大于 30),这意味着系统上存在 I/O 问题,从而导致 CPU 不能到达其{zj0}工作状态。如果 sy 时间 比 us 时间 长,这意味着您的系统处理数字的时间比实际处理内核数据的时间短。这也不好。 虽然 那用户为什么会对系统抱怨呢?因为系统真的让用户感觉到运行得很慢。直到我确定了没有系统问题,而且相邻的同事没有出现问题,我才确定了问题的根源。因此,我让他重新启动 PC,从而获得干净的客户机系统。显然,某个正在运行的东西造成了 PC 客户机故障。 第二天我又接到另一个电话,于是再次启动
这又说明什么呢? 显然,此系统处于 CPU Bound 状态。没有进行分页,也没有任何 I/O 问题。有大量可运行线程,但没有足够的 CPU 周期来处理需要完成的工作。我得出这个结论花了多长时间?仅仅五秒钟。也可以尝试使用其他实用工具来进行此工作。
下一个命令 我在没有用户的情况下在系统上运行此命令(请参见)。除非有批处理作业在运行,否则就不会看到大量的活动。 显然,此系统也没有 CPU 瓶颈。 上面所使用的列与 vmstat 条目输出类似。下表将 sar 与 vmstat 描述内容进行关联(请参见)。 我更喜欢使用 vmstat 而不是 sar 的一个原因是,它可提供 CPU 使用率信息,并能提供有关内存和 I/O 的总体监视信息。对于 sar,您需要运行独立的命令才能提取信息。sar 的一个优势是,它允许捕获日常信息和运行关于此信息的报告(不用自己撰写脚本来进行此工作)。它通过使用名为 System Activity Data Collector 的进程实现此工作,此进程实际是
接下来我们讨论特定于 AIX 的命令。编写这些命令的目的是为了让管理员在分区环境中监视系统。这些命令在使用 Advanced POWER Virtualization 功能(如共享处理器和微分区)时尤为有用。
当用户首次报告系统运行缓慢时,我决定启动 lparstat。 因为我还希望看到 POWER Hypervisor 统计数据,因此使用了
正如您看到的,从某种程度而言,上面所生成的输出与
我经常使用的另一个命令是 我喜欢使用
接下来我们将了解一些实用工具,通过这些工具能以图形查看分析,还能对历史数据进行分析。尽管xx了解这些工具需要一定的时间,但这些工具比我们已经了解的命令行工具要更为灵活。
接下来我们讨论 procmon(请参见)。此实用工具(在 AIX 5.3 中发布)不仅提供总体性能统计数据,还允许对实际运行的处理器进行操作。它允许管理员动态地结束进程或恢复进程。还可以将 procmon 数据导出到文件中,这就使其成为了一个不错的数据收集工具。procmon 实际上作为性能 Workbench 的插件运行,此 Workbench 可通过使用 我之所以喜欢 procmon,是因为它允许对进程进行操作,而这可以提高系统的性能。虽然这个工具也有局限性,但我强烈建议您下载并使用此工具(我发现大多数管理员都不习惯使用此工具)。
应该注意的另一个工具是 topas。老实说,尽管在 AIX 5.3 中有了大幅度提升,但我从来没有遇到过太多的 topas(属于 bos.perf.tools 文件集)迷。在进行这些更改前,它并不能捕获历史数据,也未针对在共享分区环境中使用而进行增强。通过这些更改,您可以从多个分区收集性能数据,切实地简化了 topas 作为性能管理和容量规划工具的功能。topas 的外观(请参见)与 top 和 monitor(在其他 UNIX 变体中使用)非常相似。topas 是在屏幕上以基于文本的 GUI 格式显示所有信息的一款实用工具。采用其缺省模式时,会显示主机名、刷新间隔和 CPU、内存及 I/O 信息的综合情况。 有些新功能还包括允许在虚拟 I/O 服务器(Virtual I/O Server,VIO Server)上运行 topas。为此,请使用以下命令: 在 LPAR 上,要运行: 考虑到在 5.3 TL 4 中引入了性能监视功能,topas 使用了从 inittab 自动启动的守护进程 xmwlm。在 AIX 5.3 的 TL_5 中,缺省会保留七天的数据,并会记录几乎所有的 topas 数据,除进程和工作负载管理器(Workload Manager,WLM)信息外,其中的其他数据会以交互方式显示。它使用
所有性能工具中,我最喜欢 nmon(不是 IBM“正式”支持的工具)。从 nmon 收集的数据(请参见)可从屏幕查看,也可以通过通常从 cron 运行的报告查看。按照其创建者 Nigel Griffiths 的说法,“如果一个免费工具能够提供所需要的所有东西,为什么还要使用五个或六个工具?” 务必注意,与已经讨论的一些其他工具不同,nmon 也可以在 Linux® 上使用,这可切实地帮助 Linux 赢得遇到性能问题的 POWER 用户群。nmon 最吸引管理员的是,不仅拥有非常高效的前端监视器(如 中所示,管理员可以动态调用),而且提供了将数据捕获到文本文件进行图形报告的功能,因为输出是 .csv(电子表格)格式(请参见)。事实上,运行 nmon 会话一段时间之后,可以实际看到以 Excel 电子表格形式良好呈现的表格,可以将此表格提交给高层管理人员或其他技术团队以进行分析。而且,与 topas 不同,我从来没有看到与此实用工具关联的任何性能类型开销。 接下来让我们看一个简单的任务。首先让我们告知 nmon 创建文件,对运行进行命名,并在 180 个时间间隔内每 30 秒进行一次数据收集(共计 1.5 个小时): 完成此工作,对文件进行排序,如 中所示。 完成后,将 .csv 文件通过 FTP 上传到工作站,启动 nmon 分析器电子表格(确保启用了宏),然后单击 analyze nmon data(请参见)。 nmon 分析器是一个非常不错的工具,是由 Stephen Atkins 编写的,能从 Excel 电子表格以图形表示数据(CPU、内存、网络或 I/O)。或许使其不能成为企业类型的工具的{wy}缺陷就是,它缺乏同时在大量 LPAR 上收集统计数据的能力,因为它不是数据库(其设计也没有考虑成为数据库)。而这正是 Ganglia(请参见中提供的链接)能提供帮助的地方,该工具的设计思想实际上得益于 Nigel Griffiths,因为此工具能够集成 nmon 分析。
本系列的第 2 部分对很多工具和实用程序进行了深入分析,可以将这些工具和实用程序用于捕获和分析运行 AIX 的 System p 服务器的性能数据。其中一些命令从 UNIX 推出之时就有了。其中很多命令用于 AIX,其他的则是不受支持的 IBM 实用工具,但大多数 AIX 管理员都在使用所有这些工具。无论最喜欢哪个工具,都需要使用其中一个来即时查看性能活动,而使用另一个工具来捕获用于进行基于历史的性能优化和趋势及容量规划分析的数据。有些工具能够同时进行这两项工作(如 nmon),但大部分都更为适合进行其中某一项工作。我建议您要对这些工具进行试验,不仅要找到最适合您的工具,还要找到能够为其他人员(不是能够理解无休止的 vmstat 显示信息的系统管理员)提供有价值信息的工具。 |