前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >性能工具之监控工具nmon自动部署

性能工具之监控工具nmon自动部署

作者头像
高楼Zee
发布2019-11-14 16:32:13
1.1K0
发布2019-11-14 16:32:13
举报
文章被收录于专栏:7DGroup7DGroup

背景

在做性能测试需要收集操作系统一些指标方便分析,如果是多台linux系统我们怎么用一个命令启动nmon收集指标,不妨这样试一试,其实有很多方法比如用python、java等等工具,这边文章有最原始ant命令执行命令与下载文件清除文件。

第一步

  • 安装ant并且配置环境变量(网上有例子参考);下图是成功例子:

提示:这样表示成功;

  • 把nmon放到linux操作系统新建一个文件夹并且给予可执行权限如:(chmod a+x nmon);

如下图:新建nmon文件夹,根据操作系统版本选择nmon版本,可以重命名如下:

第二步

  • 编写build.xml文件:

下图是三台机器监控文件编写,如果有多台,按规则添加就行:另存为build.xml文件格式;

<project name="AntHome" basedir="../" default="main"> <property name="user" value="root"/> <!--用户名--> <property name="passwd" value="123456"/> <!--密码--> <property name="app30" value="被测ip地址"/> <!--IP地址--> <property name="app29" value="被测ip地址"/> <!--IP地址--> <property name="DB88" value="被测ip地址"/> <!--IP地址--> <property name="targetDir" value="/home/nmon"/> <!—liunx中nmon路径--> <property name="nmon_cmd" value="./nmon -f -t -r –name(可以修改) -s 5 -c 216 -F "/> <!--nmon位置确定是否可以运行—> <property name="nmon_filename" value="20170911_300vu_"/> <!--结果命令规则--> <property name="nmon_filename_30" value="${nmon_filename}30.nmon"/> <property name="nmon_filename_29" value="${nmon_filename}29.nmon"/> <property name="nmon_filename_88" value="${nmon_filename}88.nmon"/> <property name="resultDir" value="E:/syswin/nmon_report"/> <!--保存结果--><target name="main"></target> <target name="run-nmon"> <!—运行方式--> <sshexec host="${app30}" username="${user}" password="${passwd}" trust="true" command="cd ${targetDir}; ${nmon_cmd} ${nmon_filename_30}" /> <sshexec host="${app29}" username="${user}" password="${passwd}" trust="true" command="cd ${targetDir}; ${nmon_cmd} ${nmon_filename_29}" /> <sshexec host="${DB88}" username="${user}" password="${passwd}" trust="true" command="cd ${targetDir}; ${nmon_cmd} ${nmon_filename_88}" /> </target> <target name="copy-file"> <!—拷贝方式--> <scp file="${user}:${passwd}@${app30}:${targetDir}/${nmon_filename_30}" todir="${resultDir}" trust="true"/> <scp file="${user}:${passwd}@${app29}:${targetDir}/${nmon_filename_29}" todir="${resultDir}" trust="true"/> <scp file="${user}:${passwd}@${DB88}:${targetDir}/${nmon_filename_88}" todir="${resultDir}" trust="true"/> </target> <target name="clean" > <!—清除方式--> <sshexec host="${app30}" username="${user}" password="${passwd}" trust="true" command="rm ${targetDir}/${nmon_filename_30}" /> <sshexec host="${app29}" username="${user}" password="${passwd}" trust="true" command="rm ${targetDir}/${nmon_filename_29}" /> <sshexec host="${DB88}" username="${user}" password="${passwd}" trust="true" command="rm ${targetDir}/${nmon_filename_88}" /> </target></project>

第四步

  • 运行方式:进入build.xml文件目录:

使用命令启动如:ant run-nmon

拷贝服务端生成的nmon文件: ant copy-file

清除远程nmon文件:antclean;

总结

使用这种方式只有在本机配置好,就能启用好几个到几十个服务器nmon可以节约时间,但问题部署多线程,还是有局限,如果大家感兴趣可以用pyhon或者java通过多线程实现还是比较不错。

简单打开方式:

使用nmon analyser for office_64.xls 打开下载来的xxx.Nmon文件

建议:

工作中一般在运行nmon都会早运行15秒到30秒之后在启动场景这样好处,便于分析与写报告。

分享一段《庄子-逍遥游》

北冥有鱼,其名为鲲。鲲之大,不知其几千里也。化而为鸟,其名为鹏。鹏之背,不知其几千里也,怒而飞,其翼若垂天之云。是鸟也,海运则将徙于南冥。南冥者,天池也。《齐谐》者,志怪者也。《谐》之言曰:“鹏之徙于南冥也,水击三千里,抟扶摇而上者九万里,去以六月息者也。”野马也,尘埃也,生物之以息相吹也。天之苍苍,其正色邪?其远而无所至极邪?其视下也,亦若是则已矣。且夫水之积也不厚,则其负大舟也无力。覆杯水于坳堂之上,则芥为之舟;置杯焉则胶,水浅而舟大也。风之积也不厚,则其负大翼也无力。故九万里,则风斯在下矣,而后乃今培风;背负青天而莫之夭阏者,而后乃今将图南。   蜩与学鸠笑之曰:“我决起而飞,抢榆枋而止,时则不至,而控于地而已矣,奚以之九万里而南为?”适莽苍者,三餐而反,腹犹果然;适百里者,宿舂粮,适千里者,三月聚粮。之二虫又何知?(抢榆枋 一作:枪榆枋)   小知不及大知,小年不及大年。奚以知其然也?朝菌不知晦朔,蟪蛄不知春秋,此小年也。楚之南有冥灵者,以五百岁为春,五百岁为秋。上古有大椿者,以八千岁为春,八千岁为秋。此大年也。而彭祖乃今以久特闻,众人匹之。不亦悲乎!   汤之问棘也是已:“穷发之北,有冥海者,天池也。有鱼焉,其广数千里,未有知其修者,其名为鲲。有鸟焉,其名为鹏。背若泰山,翼若垂天之云。抟扶摇羊角而上者九万里,绝云气,负青天,然后图南,且适南冥也。斥鷃笑之曰:‘彼且奚适也?我腾跃而上,不过数仞而下,翱翔蓬蒿之间,此亦飞之至也。而彼且奚适也?’”此小大之辩也。   故夫知效一官,行比一乡,德合一君,而征一国者,其自视也,亦若此矣。而宋荣子犹然笑之。且举世誉之而不加劝,举世非之而不加沮,定乎内外之分,辩乎荣辱之境,斯已矣。彼其于世,未数数然也。虽然,犹有未树也。夫列子御风而行,泠然善也。旬有五日而后反。彼于致福者,未数数然也。此虽免乎行,犹有所待者也。若夫乘天地之正,而御六气之辩,以游无穷者,彼且恶乎待哉?故曰:至人无己,神人无功,圣人无名。

nmon语法:

交互方式

nmon [ -h ]

nmon [ -s < seconds >][ -c < count >][ -b ] [ -B ] [ -g < filename >][ -k disklist ] [ -C < process1:process2:..:processN >] [ -i ]

记录方式

nmon [ -f | -F filename | -x | -X | -z ] [ -r < runname > ] [ -t | -T | -Y ] [ -s seconds ][ -c number ] [ -w number ][ -l dpl ] [ -d ] [ -g filename ][-k disklist ][ -C <process1:process2:..:processN > ] [ -G ] [ -K ] [ -o outputpath ] [ -D ] [ -E ] [ -J ] [ -V ] [ -P ] [ -M ] [ -N ] [ -W ] [ -S ] [ -^ ] [ -O] [ -L ] [ -I percent ] [ -A ] [ -m < dir > ] [ -Z priority ] [ -i ]

注: 在记录方式下,仅指定 -f-F-z-x-X 标志的其中之一作为第一个参数。

项目

描述

-s < seconds >

刷新屏幕之间的时间间隔。缺省值为 2 秒。

-c < count >

必须刷新屏幕的次数。

-g < filename >

其中包含用户定义的磁盘组的文件,可以使用 filename 参数来指定此文件。文件中的每一行以组名开头。磁盘列表跟在组名后面,各个硬盘之间用空格分隔。该文件最多可包含 64 个磁盘组。硬盘可属于各种磁盘组。

-b

显示黑白方式的视图。

-B

不要在视图中包括框。缺省情况下该命令会显示框。

-h

显示帮助信息。

-k < disklist >

仅报告磁盘列表中的磁盘。

-i

报告顶级线程级别 CPU 利用率。

记录方式中的标志

项目

描述

-A

在视图中包括异步 I/O 部分。

-c

指定此命令必须生成的快照数。缺省值为 10000000。

-d

在视图中包括磁盘服务时间部分。

-D

跳过磁盘配置部分。

-E

跳过 ESS 配置部分。

-f

指定输出使用电子表格格式。缺省情况下,此命令会生成系统数据的 288 个快照,两次生成快照之间的时间间隔为 300 秒。输出文件的名称为hostname_YYMMDD_HHMM.nmon 格式。

-F

指定输出使用电子表格格式,并且输出文件的名称为 filename。filename 参数指定输出文件的名称。

-g

使用 filename 参数指定其中包含用户定义的磁盘组的文件。文件中的每一行以组名开头。磁盘列表跟在组名之后,磁盘之间用空格隔开。该文件最多可包含 64 个磁盘组。磁盘可属于各种磁盘组。

-G

使用格林威治标准时间 (GMT) 来代替当地时间。针对处理器视图比较来自一个系统的多个 LPAR 的 nmon 文件但LPAR在不同时区中时,此方法很有帮助。

-i

报告线程级别统计信息。

-I

指定命令忽略最繁忙进程统计信息时的进程阈值百分比。缺省百分比为 0。如果进程使用的处理器资源低于指定的百分比,那么该命令不会保存最繁忙进程统计信息。

-J

跳过 JFS 部分。

-k

指定要记录的磁盘的列表。

-K

在记录文件中包括 RAW 内核部分和LPAR部分。-K 标志会转储对应数据结构的原始数字。内存转储是可读的,并且可在命令记录数据时使用。

-l

指定每一行上要列示的磁盘数。缺省情况下,每行列示 150 个磁盘。对于 EMC 磁盘,指定值 64。

-L

包括大页分析部分。

-m

在命令将数据保存至文件之前切换目录。

-M

在记录文件中包括 MEMPAGES 部分。MEMPAGES 部分会显示对应每个页大小的详细内存统计信息。

-N

在记录文件中包括 NFS 部分。要收集 NFSv4 统计信息,请指定 -NN。

-o

指定要将已记录文件存储至的文件名或目录。

-O

在记录文件中包括共享以太网适配器 (SEA) VIOS 部分。

-P

在记录文件中包括调页空间部分。

-r

指定写至电子表格文件的 runname 字段的值。缺省情况下,此值为 hostname。

-s

指定两个连续的记录快照之间的时间间隔(以秒计)。

-S

在记录文件中包括 WLM 部分以及子类。

-t

在输出中包括最繁忙进程。不能同时指定 -t、-T 或 -Y 标志当中的任意两者。

-T

在输出中包括最繁忙进程,并将这些命令行参数保存至 UARG 部分。不能同时指定 -t、-T 或 -Y 标志当中的任意两者。

-V

包括磁盘卷组部分。

-w

指定要记录的时间戳记的大小 (Tnnnn)。时间戳记记录在 .csv 文件中。number 参数的值的范围是 4 到 16。对于 NMON 分析器,请使用值 4 或 8。

-W

在记录文件中包括 WLM 部分。

-x

指定持续时间为 1 天的可感电子表格记录以用于容量规划。缺省情况下,每 900 秒完成一次记录,一共完成 96 次。此标志相当于 -ft -s 900 -c 96。

-X

指定持续时间为 1 小时的可感电子表格记录以用于容量规划。缺省情况下,每 30 秒完成一次记录,一共完成 120 次。此标志相当于 -ft -s 30 -c 120。

-Y

在记录中包括最繁忙进程以及添加和记录的同名命令。不能同时指定 -t、-T 或 -Y 标志。

-z

指定持续时间为 1 天的可感电子表格记录以用于容量规划。缺省情况下,每 900 秒完成一次记录,一共完成 96 次。此标志相当于 -f -s 900 -c 96。

-Z

指定正在运行的 nmon 命令的优先级。值为 -20 时表示重要。值为 20 时表示不重要。只有 root 用户才能指定负值。

-^

包括光纤通道 (FC) 部分。

项目

描述

space

立即刷新屏幕。

.

仅显示繁忙磁盘和进程。

~

切换至 topas 屏蔽。

^

显示光纤通道适配器统计信息

+

使屏幕刷新时间翻倍。

-

将屏幕刷新时间缩短一半。

0

将统计信息的峰值(显示在屏幕上)复位为 0。仅适用于显示峰值的面板。

a

显示适配器的 I/O 统计信息。

A

总结异步 I/O(AIO 服务器)进程。

b

显示黑白方式的视图。

c

用条形图显示处理器统计信息。

C

显示处理器统计信息。在处理器数目范围为 15 到 128 的情况下进行比较时很有用。

d

显示磁盘的 I/O 信息。要仅显示特定磁盘,请指定 -k 标志。

D

显示磁盘的 I/O 统计信息。要获取磁盘的附加统计信息,请多按几次 D 键。

e

显示 ESS 虚拟路径逻辑磁盘的 I/O 统计信息。

g

显示磁盘组的 I/O 统计信息。必须使用此键指定 -g 标志。

h

显示联机帮助信息。

j

显示 JFS 统计信息。

k

显示内核的内部统计信息。

l

显示长格式的处理器统计信息。用条形图显示超过 75 个快照。

m

显示内存和调页统计信息。

M

显示多个页大小统计信息(以页计)。如果按两次 M 键,那么会以兆字节为单位显示统计信息。

n

显示网络统计信息。

N

显示 NFS 网络文件系统的统计信息。如果按两次 N 键,那么将看到 NFSv4 统计信息。

o

显示磁盘 I/O 的映射。

O

仅显示共享以太网适配器 VIOS。

p

显示分区的统计信息。

P

显示调页空间的统计信息。

q

退出。还可以使用 x 或 Ctrl+C 键序列。

r

显示资源类型、系统名称、高速缓存详细信息、AIX®版本和LPAR信息。

S

显示 WLM 及子类。

t

显示最繁忙进程的统计信息。可按下列键并使用此子命令:

1:显示基本详细信息。

2:显示累积的进程信息。

3:按处理器对视图排序。

4:按大小对视图排序。

5:按 I/O 信息对视图排序。

u

使用命令参数来显示最繁忙进程。要刷新新进程的参数,请按两次 u 键。

U

使用命令参数来显示最繁忙进程以及工作负载类或工作负载分区工作负载分区信息。

v

突出显示预先定义的系统资源的状态并将它们归类为危险、警告或正常。

V

显示磁盘卷组的统计信息。

w

显示与最繁忙进程一起使用的等待进程。

W

显示工作负载管理器 (WLM) 的统计信息。

[

触发定制的随需应变记录。如果已启动的记录未提前停止,那么它将与交互式 nmon 一起退出。

]

将停止由 ] 触发的定制记录。

nmon打开文件单元格说明:

sheet名称

sheet含义

SYS_SUMM

系统汇总,蓝线为cpu占有率变化情况,粉线为磁盘IO的变化情况;

AAA

关于操作系统以及nmon本身的一些信息;

BBBB

系统外挂存储容量以及存储类型;

BBBC

系统外挂存储位置、状态以及描述信息;

BBBD

磁盘适配器信息;(包含磁盘适配器名称以及描述)

BBBE

包含通过lsdev命令获取的系统设备及其特征,显示vpaths和hdisks之间的映射关系;

BBBG

显示磁盘组详细的映射关系;

BBBL

逻辑分区(LPAR)配置细节信息;

BBBN

网络适配器信息;

BBBP

vmtune, schedtune, emstat和lsattr命令的输出信息;

CPUnn

显示执行之间内CPU占用情况,其中包含user%、sys%、wait%和idle%;

CPU_ALL

所有CPU概述,显示所有CPU平均占用情况,其中包含SMT状态;

CPU_SUMM

每一个CPU在执行时间内的占用情况,其中包含user%、sys%、wait%和idle%;

DGBUSY

磁盘组每个hdisk设备平均占用情况;

DGREAD

每个磁盘组的平均读情况;

DGSIZE

每个磁盘组的平均读写情况(块大小);

DGWRITE

每个磁盘组的平均写情况;

DGXFER

每个磁盘组的I/O每秒操作;

DISKBSIZE

执行时间内每个hdisk的传输块大小;

DISKBUSY

每个hdisk设备平均占用情况;

DISKREAD

每个hdisk的平均读情况;

DISKWRITE

每个hdisk的平均写情况;

DISKXFER

每个hdisk的I/O每秒操作;

DISKSERV

本sheet显示在每个收集间隔中hdisk的评估服务时间(未响应时间)

DISK_SUMM

总体disk读、写以及I/O操作;

EMCBSIZE/FAStBSIZE

执行时间内EMC存储的传输块大小;

EMCBUSY/FAStBUSY

EMC存储设备平均占用情况;

EMCREAD/FAStREAD

EMC存储的平均读情况;

EMCWRITE/FAStWRITE

EMC存储的平均写情况;

EMCXFER/FAStXFER

EMCSERV/FAStSERV

ESSBSIZE

本sheet记录在系统中每个vpaths下读写操作的平均数据传输大小(blocksize) Kbytes

ESSBUSY

本sheet记录使用ESS系统的每个vpaths下的设备繁忙情况

ESSREAD

本sheet记录在系统中每个vpaths下读取操作的 data rate (Kbytes/sec)

ESSWRITE

本sheet记录在系统中每个vpaths下写入操作的 data rate (Kbytes/sec)

ESSXFER

本sheet记录在系统中每个vpaths下每秒的IO操作

ESSSERV

本sheet显示在每个收集间隔中vpaths的评估服务时间(未响应时间)

FILE

本sheet包含nmon内核内部的统计信息的一个子集,跟sar报告的值相同

FRCA

IOADAPT

对于BBBCsheet每个IO适配器列表,包含了数据传输速度为读取和写入操作(千字节/秒)和I / O操作执行的总数量

JFSFILE

本sheet显示对于每一个文件系统中,在每个间隔区间正在被使用的空间百分比

JFSINODE

本sheet显示对于每一个文件系统中,在每个间隔区间正在被使用的inode百分比

LARGEPAGE

本图表显示Usedpages和Freepages随着时间的变化

LPAR

MEM

本sheet主图上显示空闲实存的数量

MEMUSE

除 %comp参数外,本sheet包含的所有项都和vmtune命令的报告中一样

MEMNEW

本sheet显示分配的内存片信息,分三大类:用户进程使用页,文件系统缓存,系统内核使用页

NET

本sheet显示系统中每个网络适配器的数据传输速率(千字节/秒)

NETPACKET

本sheet统计每个适配器网络读写包的数量;这个类似于netpmon –O dd 命令

NFS sheets

PAGE

本sheet统计相关页信息的记录

PROC

本sheet包含nmon内核内部的统计信息。其中RunQueue和Swap-in域是使用的平均时间间隔,其他项的单位是比率/秒

PROCAIO

本sheet包含关于可用的和active的异步IO进程数量信息.

TOP

UARG

WLM sheets

ZZZZ

本sheet自动转换所有nmon的时间戳为现在真实的时间,方便更容易的分析

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-11-03,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 7DGroup 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 背景
  • 第一步
  • 第二步
  • 第四步
  • 总结
相关产品与服务
文件存储
文件存储(Cloud File Storage,CFS)为您提供安全可靠、可扩展的共享文件存储服务。文件存储可与腾讯云服务器、容器服务、批量计算等服务搭配使用,为多个计算节点提供容量和性能可弹性扩展的高性能共享存储。腾讯云文件存储的管理界面简单、易使用,可实现对现有应用的无缝集成;按实际用量付费,为您节约成本,简化 IT 运维工作。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档