首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网络技术 > 网络基础 >

AIX 5L 性能优化,第 二 部分: 监视 CPU

2012-08-10 
AIX 5L 性能优化,第 2 部分: 监视 CPU引言性能优化显然不只是运行一些命令然后观察结果。UNIX? 管理员需要

AIX 5L 性能优化,第 2 部分: 监视 CPU

引言

性能优化显然不只是运行一些命令然后观察结果。UNIX? 管理员需要知道将哪些工具用于何种目的,以及捕获数据的最佳方法是什么。有时候您可能没有 30 天时间来通过系统地分析数据确定趋势,而有时候甚至都用不了 30 分钟就能够准确地判断出您的瓶颈所在。不管怎么说,这就是 CPU 监视的主要目的——准确地确定瓶颈。除非所搜集的数据清楚地表明 CPU 是瓶颈,否则并不希望进行 CPU 优化。事实上,我们经常会发现瓶颈与内存或 I/O 相关,而不是与 CPU 相关的问题。

作为 AIX 管理员,最重要的职责之一就是优化您的系统。如果不首先监视系统并分析结果,就不能进行优化。对于长期趋势和短期(接下来数小时内必须完成的工作)问题均是如此。虽然可以使用特定工具仅对 CPU 进行分析,但对于给定环境,可能要使用在系统上寻找所有可能瓶颈的工具。正如您可能已经知道的,CPU 是系统中最快的组件。如果您的 CPU 是瓶颈,将会对整个系统的性能造成影响。在我介绍这些工具时,请您注意以下命令已在 AIX 5.3 中进行了增强,允许工具使用 Advanced Power Virtualization 报告有关共享分区的准确统计数据:mpstatsartopas?和?vmstat。此外,还对以下基于跟踪的工具进行了更新:Curt、filemon、netpmon、pprof 和 splat。

闲话少说,接下来让我们开始着手监视系统。

UNIX 通用 CPU 监视工具

接下来我们将讨论在所有 UNIX 分发版本(Solaris 到 AIX)上可用的 UNIX 通用工具。虽然有些输出内容根据分发版本不同而有所变化,但大多数标志适用于所有 UNIX 系统。这些标志可帮助您动态地收集信息,但我不会依赖其确定历史趋势和进行分析。

我们首先讨论 vmstat。vmstat 报告关于进程、内存、分页、被阻塞的 I/O 及总体 CPU 活动的信息。虽然这个工具与虚拟内存相关(vmstat 中的 vm),但我发现在主机上运行 vmstat 可以让我快速而准确地确定 AIX 服务器上发生的情况。

使用 vmstat

您刚刚听到了我们非常不愿意听到的抱怨“为什么系统这么慢?”,需要快速进行分析,以确定可能的瓶颈位置。vmstat 是开始进行此工作的最好工具。有关运行 vmstat 的示例,请参见清单 1。


清单 1. 运行 vmstat
使用 sar

下一个命令?sar?是 UNIX System Activity Reporting 工具(属于 bos.acct 文件集)。此命令似乎已经成为了 UNIX 世界中永远存在的一员。此命令实际上就是将选择作为其标志的积累活动的内容写入到标准输出。例如,以下命令使用?-u?标志报告 CPU 统计数据。对于 vmstat,如果在虚拟环境中使用共享分区,将会报告两个其他信息列:physc?和?entc,这两个列分别定义分区所使用的物理处理器的数量以及所使用的可用容量。

我在没有用户的情况下在系统上运行此命令(请参见清单 3)。除非有批处理作业在运行,否则就不会看到大量的活动。


清单 3. 在没有用户的情况下运行 sar
sarvmstat%usrus%syssy%wiowa%idleid

我更喜欢使用 vmstat 而不是 sar 的一个原因是,它可提供 CPU 使用率信息,并能提供有关内存和 I/O 的总体监视信息。对于 sar,您需要运行独立的命令才能提取信息。sar 的一个优势是,它允许捕获日常信息和运行关于此信息的报告(不用自己撰写脚本来进行此工作)。它通过使用名为 System Activity Data Collector 的进程实现此工作,此进程实际是?sar?命令的一个后端进程。在已启用的情况下,它通常通过 cron(在缺省 AIX 分区上,通常会发现将其注释掉了)以二进制格式定期收集数据。

AIX 特定的 CPU 监视工具

接下来我们讨论特定于 AIX 的命令。编写这些命令的目的是为了让管理员在分区环境中监视系统。这些命令在使用 Advanced POWER Virtualization 功能(如共享处理器和微分区)时尤为有用。

使用 lparstat

当用户首次报告系统运行缓慢时,我决定启动 lparstat。lparstat?命令用于报告逻辑分区(Logical Partition,LPAR)信息和相关统计数据。在 AIX 5L V5.3 中,lparstat?命令将显示关于很多 POWER Hypervisor 调用的 Hypervisor 统计数据。lparstat?命令是一个相对较新的命令,通常用于在共享处理器分区环境中提供帮助。

因为我还希望看到 POWER Hypervisor 统计数据,因此使用了?-h?标志(如清单 4?中所示)。


清单 4. lparstat 命令的?-h?标志
mpstat

我经常使用的另一个命令是?mpstat?命令(请参见清单 5),该命令属于 bos.acct 文件集。这是专门为 AIX 5.3 创建的工具(与 lparstat 不同),用于显示分区系统上所有逻辑 CUP 的总体性能值。运行?mpstat?命令时,将显示两个部分的统计数据。第一部分显示系统配置,在该命令开始执行以及对系统配置进行了修改时,将显示这部分信息。第二部分显示使用率统计数据,此数据将以用户指定的时间为间隔显示。


清单 5. 运行 mpstat
GUI 工具

接下来我们将了解一些实用工具,通过这些工具能以图形查看分析,还能对历史数据进行分析。尽管完全了解这些工具需要一定的时间,但这些工具比我们已经了解的命令行工具要更为灵活。

procmon

接下来我们讨论 procmon(请参见图 1)。此实用工具(在 AIX 5.3 中发布)不仅提供总体性能统计数据,还允许对实际运行的处理器进行操作。它允许管理员动态地结束进程或恢复进程。还可以将 procmon 数据导出到文件中,这就使其成为了一个不错的数据收集工具。procmon 实际上作为性能 Workbench 的插件运行,此 Workbench 可通过使用?perfwb(位于 /usr/bin 中)命令(属于 bos.perf.gtools.perfwb 文件集)启动。


图 1. procmon 输出
AIX 5L 性能优化,第 二 部分: 监视 CPU?

我之所以喜欢 procmon,是因为它允许对进程进行操作,而这可以提高系统的性能。虽然这个工具也有局限性,但我强烈建议您下载并使用此工具(我发现大多数管理员都不习惯使用此工具)。

topas

应该注意的另一个工具是 topas。老实说,尽管在 AIX 5.3 中有了大幅度提升,但我从来没有遇到过太多的 topas(属于 bos.perf.tools 文件集)迷。在进行这些更改前,它并不能捕获历史数据,也未针对在共享分区环境中使用而进行增强。通过这些更改,您可以从多个分区收集性能数据,切实地简化了 topas 作为性能管理和容量规划工具的功能。topas 的外观(请参见图 2)与 top 和 monitor(在其他 UNIX 变体中使用)非常相似。topas 是在屏幕上以基于文本的 GUI 格式显示所有信息的一款实用工具。采用其缺省模式时,会显示主机名、刷新间隔和 CPU、内存及 I/O 信息的综合情况。


图 2. topas 显示
AIX 5L 性能优化,第 二 部分: 监视 CPU?

有些新功能还包括允许在虚拟 I/O 服务器(Virtual I/O Server,VIO Server)上运行 topas。为此,请使用以下命令:

nmon

所有性能工具中,我最喜欢 nmon(不是 IBM“正式”支持的工具)。从 nmon 收集的数据(请参见图 3)可从屏幕查看,也可以通过通常从 cron 运行的报告查看。按照其创建者 Nigel Griffiths 的说法,“如果一个免费工具能够提供所需要的所有东西,为什么还要使用五个或六个工具?”


图 3. nmon 示例输出
AIX 5L 性能优化,第 二 部分: 监视 CPU?

务必注意,与已经讨论的一些其他工具不同,nmon 也可以在 Linux? 上使用,这可切实地帮助 Linux 赢得遇到性能问题的 POWER 用户群。nmon 最吸引管理员的是,不仅拥有非常高效的前端监视器(如图 3?中所示,管理员可以动态调用),而且提供了将数据捕获到文本文件进行图形报告的功能,因为输出是 .csv(电子表格)格式(请参见图 4)。事实上,运行 nmon 会话一段时间之后,可以实际看到以 Excel 电子表格形式良好呈现的表格,可以将此表格提交给高层管理人员或其他技术团队以进行分析。而且,与 topas 不同,我从来没有看到与此实用工具关联的任何性能类型开销。

接下来让我们看一个简单的任务。首先让我们告知 nmon 创建文件,对运行进行命名,并在 180 个时间间隔内每 30 秒进行一次数据收集(共计 1.5 个小时):

?

nmon 分析器是一个非常不错的工具,是由 Stephen Atkins 编写的,能从 Excel 电子表格以图形表示数据(CPU、内存、网络或 I/O)。或许使其不能成为企业类型的工具的唯一缺陷就是,它缺乏同时在大量 LPAR 上收集统计数据的能力,因为它不是数据库(其设计也没有考虑成为数据库)。而这正是 Ganglia(请参见参考资料中提供的链接)能提供帮助的地方,该工具的设计思想实际上得益于 Nigel Griffiths,因为此工具能够集成 nmon 分析。

总结

本系列的第 2 部分对很多工具和实用程序进行了深入分析,可以将这些工具和实用程序用于捕获和分析运行 AIX 的 System p 服务器的性能数据。其中一些命令从 UNIX 推出之时就有了。其中很多命令用于 AIX,其他的则是不受支持的 IBM 实用工具,但大多数 AIX 管理员都在使用所有这些工具。无论最喜欢哪个工具,都需要使用其中一个来即时查看性能活动,而使用另一个工具来捕获用于进行基于历史的性能优化和趋势及容量规划分析的数据。有些工具能够同时进行这两项工作(如 nmon),但大部分都更为适合进行其中某一项工作。我建议您要对这些工具进行试验,不仅要找到最适合您的工具,还要找到能够为其他人员(不是能够理解无休止的 vmstat 显示信息的系统管理员)提供有价值信息的工具。

热点排行