使用 Cognos 分析 nmon 采集的 AIX 性能数据
简介: nmon 是监控 AIX 和 Linux 性能的免费工具。通过它可以捕获操作系统大量有价值的性能统计信息。而 IBM Cognos 具有非常丰富而灵活的报表展现功能。在本文中,将两者相结合,通过遵循必要的步骤,使得 Cognos 用户方便快捷地创建关于 AIX 性能数据的报告和图表。首先通过 nmon 采集 AIX 的性能数据,然后通过 SHELL 脚本将 nmon 的数据捕获文件转换为 Cognos 识别的格式文件,最后,通过 Cognos 生成 AIX 性能报表。本文方法简便易行,从中既体现了 nmon 数据采集的优势,又充分展现了 Cognos 在报表生成和分析方面的强大功能。
发布日期: 2010 年 8 月 25 日
级别: 中级
访问情况 2137 次浏览
建议: 1 (查看或添加评论)
nmon 工具可以为 AIX 和 Linux 性能专家提供监视和分析性能数据的功能。它所监控的操作系统资源比 AIX 和 Linux 操作系统自身提供的一些命令要全面。用五、六个工具做到的事情,通过这一个免费的工具就可以全部做到。所以,很多系统管理员喜欢 nmon,尽管其不是 IBM“正式”支持的工具。
IBM Cognos 提供大量的报告和分析功能,并支持面向服务的体系结构(SOA)。尽管 nmon analyser 作为生成 AIX 性能报告的免费工具,可从 nmon 的输出中生成大量的图形化报告。但是,与 IBM Cognos 相比,其生成的图表报告比较简单,并且由于电子表格的限制建议最多收集 300 个快照。而通过 IBM Cognos 可以有效地整合海量数据并为性能专家提供一个直观的、动态的和友善的界面。方便用户进行详细的 AIX 性能分析和定位,进而能找到问题的所在。此外,还可以支持大批量的快照。本文是针对 AIX 性能数据分析方面所做的一个有益的尝试。
本文假设您具有使用 AIX 和 IBM Cognos 的经验,并且能够访问 AIX 和 IBM Cognos 以执行管理任务。
本文假设您安装了以下软件:
- 运行在 AIX 上的 nmon 工具;
- 运行在 Windows® 上的 Cognos 8(8.1,8.2,8.3 和 8.4),安装并配置好。
运行带 -f 标志的 nmon 命令。有关详细信息,请参阅 nmon -h。但是作为示例,可以尝试运行下面的 nmon 命令来,告知 nmon 创建文件,并每隔 30 秒的时间进行一次数据收集,共采集 180 次(共计 1.5 个小时):
nmon -f -s 30 -c 180 |
-f 表示生成的数据文件名中有时间;
-s 30 表示每 30 秒采集一次数据;
-c 180 表示采集 180 次,30*180=5400 秒,刚好是 1 个半小时的数据,这样运行一次这个程序就会生成一个采集 1 个半小时数据的文件。
该行命令将在当前目录中创建输出文件,其名称为:
<hostname>_date_time.nmon |
“hostname” 是这台主机的主机名。
该文件是采用逗号分隔值 (CSV) 的格式。由于 nmon 的输出文件中存在列数不一致的情况,所以这种文件并不能直接导入到 Cognos 中。因此要进行数据转换,生成 Cognos 识别的格式文件。
CPU 使用率和磁盘 I/O 速度、传输及读 / 写比率能在很大程度上反映操作系统的综合性能。因此,可以通过编写一个 shell 脚本来转换 nmon 采集到的相关数据,从而方便使用 Cognos 来迅速抽取不同维度的性能概览数据,进而分析 AIX 性能数据。
第一步,为了方便用户使用,定义帮助信息。实现代码如下:
清单 1. 帮助信息函数
#Output helpful information regarding how to use the function and its parameters # 用法 # -h 帮助信息 # -n 指定抽取数据的类别:CPU 或 DISK # -f 指定 nmon 生成的输出文件 help() { echo "usage: $0 [-h] -n <name> -f <filename>" echo " -h FULL help information" echo " -n Specify the name." echo " Valid name are: CPU, DISK" echo " -f Specify the nmon output file." exit 0 } |
第二步,对输入参数进行校验。包括校验输入的参数个数,输入的抽取数据类别,以及输入的 nmon 生成的数据文件名称等等。具体实现代码如下:
清单 2. 输入参数校验
if [ $# -eq 0 ] then help fi while getopts ":hf:n:" optchar ; do case $optchar in f) filename=$OPTARG ;; n) name=$OPTARG ;; h) help ;; *) error "Invalid option" ;; esac done # Ensure that we got a name # 确保输入的抽取数据类别名不为空 if [ "${name}" == "" ] ; then error "No name specified" fi # Ensure that we got a filename # 确保输入的 nmon 输出文件名不为空 if [ "${filename}" == "" ] ; then error "No filename specified" fi # Ensure that the input file existed # 确保输入的 nmon 输出文件存在 if [ ! -f $filename ] ; then error "$filename does not exist!" fi if [ -z $filename ] ; then error "$filename file size is zero" fi if (test ! -r $filename ) ; then error "Cannot read file $filename" fi # Validate the name as one of the names allowable # 校验输入的抽取数据类别名 case "$name" in "CPU" ) outputname=${filename}_${name}."csv" echo $outputname echo "CPU,seq,Edate,Etime,User%,Sys%,Wait%,Idle%" > ${outputname} ;; "DISK" ) outputname=${filename}_${name}."csv" echo $outputname > ${outputname} ;; "" ) error "No name provided" ;; *) error "Invalid name provided" ;; esac |
第三步,以 nmon 性能工具生成的文件作为输入,然后从中抽取 CPU 使用率和磁盘 I/O 速度、传输及读 / 写比率等性能数据。实现代码如下:
清单 3. 抽取性能数据
i=0 j=0 t1="" line="" while read line; do # get seqno, Edate, Etime from file head # 从文件头中获取序号、日期、时间 if [[ $line == ZZZZ* ]] ; then seq1=`echo $line|awk -F',' '{print $2}'` Edate=`echo $line|awk -F',' '{print $4}'` Etime=`echo $line|awk -F',' '{print $3}'` let j=$j+1 let i=$i+1 continue fi if [ $j -eq 0 ] ; then let i=$i+1 # Special process of meta data on the DISKXFER # 对 DISKXFER 元数据进行特殊处理 if [ $name == "DISK" ] ; then if [[ $line == DISKXFER* ]] ; then others=`echo $line|cut -d, -f 3-11` echo "DISK,seq,Edate,Etime",$others > ${outputname} fi fi continue fi # processing CPU data # 处理 CPU 数据 if [ $name == "CPU" ] ; then if [[ $line == $name* ]] ; then t1=`echo $line|awk -F',' '{print $1}'` seq2=`echo $line|awk -F',' '{print $2}'` others=`echo $line|cut -d, -f 3-6` if [[ $seq1 == $seq2 ]] ; then echo $t1,$seq1,$Edate,$Etime,$others >> ${outputname} fi let j=$j+1 let i=$i+1 continue fi fi # processing DISK data # 处理 DISK 数据 if [ $name == "DISK" ] ; then if [[ $line == DISK* ]] ; then t1=`echo $line|awk -F',' '{print $1}'` seq2=`echo $line|awk -F',' '{print $2}'` others=`echo $line|cut -d, -f 3-11` if [[ $seq1 == $seq2 ]] ; then echo $t1,$seq1,$Edate,$Etime,$others >> ${outputname} fi let j=$j+1 let i=$i+1 continue fi fi let i=$i+1 done < ${filename} echo $i echo $j |
最后,数据转换脚本在本文中命名为 nmonext.ksh。
本文中数据转换脚本使用的 AIX 操作系统的 Level 是 6.1.3.0,使用的 shell 的名称是 Korn Shell。
数据转换脚本的使用分以下三步:
首先,把数据转换脚本 nmonext.ksh 用 ftp 上传到 AIX 机器的 nmon 工具生成输出文件的目录。例如:/home/root/nmon/
然后,执行授权命令:#chmod +x nmonext.ksh
最后,分别运行带不同抽取数据类别(如:CPU 或 DISK)的数据转换脚本 nmonext.ksh。
有关详细信息,请参阅 nmonext.ksh -h。作为示例,可以尝试运行下面的命令来从主机 p5m01 上的文件 p5m01_100310_2359.nmon 中抽取 CPU 使用率:
nmonext.ksh -n CPU -f p5m01_100310_2359.nmon |
该行命令将在当前目录中创建输出文件,其名称为:
p5m01_100310_2359.nmon_CPU.csv |
该文件是采用逗号分隔值 (CSV) 的格式,并且能被 Cognos 识别。
然后,尝试运行下面的命令来从主机 p5m01 上的文件 p5m01_100310_2359.nmon 中抽取磁盘 I/O 速度、传输及读 / 写比率:
nmonext.ksh -n DISK -f p5m01_100310_2359.nmon |
该行命令将在当前目录中创建输出文件,其名称为:
p5m01_100310_2359.nmon_DISK .csv |
实际命令执行及输出如下所示:
p5m01> nmonext.ksh -n CPU -f p5m01_100310_2359.nmon p5m01_100310_2359.nmon_CPU.csv 7943 2520 p5m01> nmonext.ksh -n DISK -f p5m01_100310_2359.nmon p5m01_100310_2359.nmon_DISK.csv 7943 1080 p5m01> |
完成上述步骤以后,把数据转换脚本生成的两个 .csv 后缀的数据文件用 ftp 方式上传到装有 Cognos 的 Windows 机器上。
Cube 的设计生成涉及多种文件,为了 cube 开发的规范和逻辑清晰,目录规范设置必不可少。本文中目录设置如下。
+nmon
+csv — 存放源数据文件
+log — 存放日志文件
+mdc — 存放 cube 文件
+mdl — 存放模型文件
+ppx — 存放报表文件
+tmp — 存放临时文件
具体设置方法是,在 Windows 机器上依次点击“开始 – 〉所有程序 – 〉 cognos8- 〉 tools- 〉 PowerPlay Transformer”从而,打开 Cognos PowerPlay Transformer。然后,依次点击
“file- 〉 preferences- 〉 directories”,进入到目录设置:
Models: C:\nmon\mdl
Datasource: C:\nmon\csv
Powercubes: C:\nmon\mdc
Data temporary files(dir1;dir2): C:\nmon\tmp
Models temporary files: C:\nmon\tmp
Log files: C:\nmon\log
新建模型:
file- 〉 new- 〉 model name: nmon_CPU.mdl
下一步 – 〉 Data source name: 默认 Data source type:delimited-field text with column titles
下一步 – 〉 file name: C:\nmon\csv\ p5m01_100310_2359.nmon_CPU.csv
下一步 – 〉去掉 autodesign
完成 – 〉设计向导退出,出现设计界面。
设计模型:
在设计界面 Datasource 框,seq 和 Edate 字段上右键点击‘删除 column ’,将这两个不用的字段删除。
将 Datasource 框中 CPU 字段拖拽到 demension map 框上部横条处释放,就填加了 CPU 维度。同理将 Etime 字段拖拽到 demension map 框上部横条处释放,填加 Etime 维度。
将 Datasource 框中 User 字段拖拽到 measures 框释放,就填加了 User 指标。同理将字段 Sys、Wait、Idle 拖拽到 measures 框释放,就填加了 Sys、Wait、Idle 指标。如图 1 所示:
图 1 .CPU Cube 设计模型
检查模型:
Tools- 〉 check model,检查模型。如果有问题按提示解决模型问题,如果没有问题,会显示“Check model is finished. No problems were found.”。
建立 cube:
Run- 〉 create Powercubes,会生成 cube。
浏览 cube:
Tools- 〉 powerplay。如图 2 所示:
图 2. CPU Cube
显示柱状图的方法:
Explore- 〉 swap rows and columns 将行列交换。
将指标拖拽到行区域,然后删除 idle 指标。
Explore- 〉 change to reportor 将工作模式从探查模式转换到报表模式。
删除报表上汇总信息:将鼠标放在报表区 cpu 那一列,按‘ del ’键删除 cpu 汇总信息。Explore- 〉 change display- 〉选择累积柱状图。
通过上述操作以后,可以显示柱状图。如图 3 所示:
图 3 .CPU 分析报告
此报表可保存。File- 〉 save- 〉 nmon_CPU.ppx。以后可以打开这个报表查看。
新建模型:
file- 〉 new- 〉 model name: nmon_DISK.mdl
下一步 – 〉 Data source name: 默认 Data source type:delimited-field text with column titles
下一步 – 〉 file name: C:\nmon\csv\ p5m01_100310_2359.nmon_DISK.csv
下一步 – 〉去掉 autodesign
完成 – 〉设计向导退出,出现设计界面。
设计模型:
在设计界面 Datasource 框,seq 和 Edate 字段上右键点击‘删除 column ’,将这两个不用的字段删除。
将 Datasource 框中 DISK 字段拖拽到 demension map 框上部横条处释放,就填加了 DISK 维度。同理将 Etime 字段拖拽到 demension map 框上部横条处释放,填加 Etime 维度。
将 Datasource 框中 hdisk0 字段拖拽到 measures 框释放,就填加了 hdisk0 指标。同理将字段 hdisk0、hdisk1、hdisk2 拖拽到 measures 框释放,就填加了 hdisk0、hdisk1、hdisk2 指标。如图 4 所示:
图 4. DISK Cube 设计模型
检查模型:
Tools- 〉 check model, 检查模型。如果有问题按提示解决模型问题,如果没有问题,会显示‘ Check model is finished. No problems were found. ’。
建立 cube:
Run- 〉 create Powercubes,会生成 cube。
浏览 cube:
Tools- 〉 powerplay。如图 5 所示:
图 5. DISK Cube
显示折线图的方法:
Explore- 〉 change to reportor 将工作模式从探查模式转换到报表模式。
删除报表上汇总信息:将鼠标放在报表区 DISK 那一行,按‘ del ’键删除 DISK 汇总信息。将鼠标放在报表区 etime 那一列,按‘ del ’键删除 etime 汇总信息。
Explore- 〉 change display- 〉选择多折线。
通过上述操作以后,可以显示折线图图。如图 6 所示:
图 6. DISK 分析报告
此报表可保存。File- 〉 save- 〉 nmon_DISK.ppx。以后可以打开这个报表查看。
Cognos 提供了直观和强大的展现和操纵数据的前端,通过它可以很好地对 nmon 采集的 AIX 性能数据进行分析。
您可以从 IBM Wiki 的 http://www-941.haw.ibm.com/collaboration/wiki/display/WikiPtype/nmon下载 nmon 及其工具
描述 | 名字 | 大小 | 下载方法 |
---|---|---|---|
示例代码 | nmonext.ksh | 4KB | HTTP |
学习
- “nmon 性能:分析 AIX 和 Linux 性能的免费工具” 这个免费的工具可以在一个屏幕上为您提供大量的信息。
- “nmon analyser ——生成 AIX 性能报告的免费工具”:了解如何使用这工具生成所需的图形化报告。
- Information Management 专区 Cognos 专题:学习关于 Cognos 的更多产品信息和技术资源。
- AIX and UNIX 专区:developerWorks 的“AIX and UNIX 专区”提供了大量与 AIX 系统管理的所有方面相关的信息,您可以利用它们来扩展自己的 UNIX 技能。
- AIX and UNIX 新手入门:访问“AIX and UNIX 新手入门”页面可了解更多关于 AIX 和 UNIX 的内容。
- AIX and UNIX 专题汇总:AIX and UNIX 专区已经为您推出了很多的技术专题,为您总结了很多热门的知识点。我们在后面还会继续推出很多相关的热门专题给您,为了方便您的访问,我们在这里为您把本专区的所有专题进行汇总,让您更方便的找到您需要的内容。
- AIX and UNIX 下载中心:在这里你可以下载到可以运行在 AIX 或者是 UNIX 系统上的 IBM 服务器软件以及工具,让您可以提前免费试用他们的强大功能。
- IBM Systems Magazine for AIX 中文版: 本杂志的内容更加关注于趋势和企业级架构应用方面的内容,同时对于新兴的技术、产品、应用方式等也有很深入的探讨。IBM Systems Magazine 的内容都是由十分资深的业内人士撰写的,包括 IBM 的合作伙伴、IBM 的主机工程师以及高级管理人员。所以,从这些内容中,您可以了解到更高层次的应用理念,让您在选择和应用 IBM 系统时有一个更好的认识。
讨论
本文出自 传播、沟通、分享,转载时请注明出处及相应链接。
本文永久链接: https://www.nickdd.cn/?p=1563