性能测试监控工具****nmon****详解和分析
1、命令安装
1、查看liunx版本 版本x86_64_14i
目录:cd /nmon/logs/
版本x86_64_14i
[root@localhost u06]# cd /
[root@localhost u06]#mkdir nmon
[root@localhost u06]#mkdir nmon/logs
[root@localhost nmon]#mv nmon_linux_14i.tar.gz nmon
[root@localhost nmon]# tar -zxvf
[root@localhost nmon]# ./nmon_x86_64_sles11
[root@localhost nmon]# cp nmon_x86_64_sles11
[root@localhost nmon]#cp nmon /bin/nmon
[root@localhost nmon]#cp nmon /usr/bin/nmon
[root@localhost nmon]#cp nmon /usr/local/bin/nmon
[root@localhost nmon]#nmon
chmod 755
crontab -l
crontab -e
*/5 * * * * /u06/nmon/nmon -s10 -c30 -f -m /u06/nmon/logs >/dev/null 2>&1
centos version 6.x service crond restart
centos version 7.x systemctl restart crond
ls logs/
2、NMON工具使用详解
nmon所记录的数据包含以下一些方面(也是我们在寻找问题过程中所关注的资源点):
● cpu占用率
● 内存使用情况
● 磁盘I/O速度、传输和读写比率
● 文件系统的使用率
● 网络I/O速度、传输和读写比率、错误统计率与传输包的大小
● 消耗资源最多的进程
● 计算机详细信息和资源
● 页面空间和页面I/O速度
● 用户自定义的磁盘组
● 网络文件系统
另外在AIX操作系统上,nmon还能监控到其他的一些信息,如异步I/O等。
3、下载安装nmon
nmon的安装步骤如下:
1)用root用户登录到系统中;
2)建目录:#mkdir / nmon;
3)把nmon用ftp上传到/test,或者通过其他介质拷贝到/ nmon目录中;
4)执行授权命令:#chmod +x nmon。
3、nmon数据采集
3.1 数据采集
为了实时监控系统在一段时间内的使用情况并将结果记录下来,我们可以通过运行以下命令实现:
#./ nmon -f -t -s 30 -c 180
n -f:按标准格式输出文件:_YYYYMMDD_HHMM.nmon;
n -t:输出中包括占用率较高的进程;
n -s 30:每30秒进行一次数据采集
n -c 180:一共采集180次
输入命令回车后,将自动在当前目录生成一个hostname_timeSeries.nmon的文件,如果hosname为nmon,生产的文件为:nmon _090308_1313.nmon。
通过sort命令可以将nmon结果文件转换为csv文件:
# sort -A nmon _090308_1313.nmon > nmon _090308_1313.csv
执行完sort命令后即可在当前目录生产nmon _090308_1313.csv文件。
(4)点击Analyse nmon data按钮,加载之前下载的nmon _090308_1313.csv文件。
5、监控结果图
SYS_SUMM
CPU_ALL
CPU_SUMM
DISKBUSY
DISK_SUMM
MEM
NET
6、表字段分析
|
关键指标类型
|
关键指标名称
|
关键指标含义
|
|
SYS_SUMM
|
CPU%
|
cpu占有率变化情况;
|
|
IO/sec
|
IO的变化情况;
|
|
AAA
|
AIX
|
AIX版本号;
|
|
cpus
|
CPU数量;
|
|
hardware
|
被测主机处理器技术;
|
|
host
|
被测主机名;
|
|
interval
|
监控取样间隔;(秒)
|
|
kernel
|
被测主机内核信息;
|
|
CPU_ALL
|
User%
|
显示在用户模式下执行的程序所使用的 CPU 百分比;
|
|
Sys%
|
显示在内核模式下执行的程序所使用的 CPU 百分比;
|
|
Wait%
|
显示等待 IO 所花的时间百分比;
|
|
Idle%
|
显示 CPU 的空闲时间百分比;
|
|
CPU%
|
CPU总体占用情况;
|
|
DISKBUSY
|
Disk %Busy Hostname
|
执行间隔时间列表;
|
|
hdisknn
|
每个磁盘执行采样数据;(磁盘设备的占用百分比)
|
|
DISK_SUMM
|
Disk total kb/s Hostname
|
执行间隔时间列表;
|
|
Disk Read kb/s
|
每个磁盘执行采样数据;(磁盘设备的读速率)
|
|
Disk Write kb/s
|
每个磁盘执行采样数据;(磁盘设备的写速率)
|
|
IO/sec
|
每秒钟输出到物理磁盘的传输次数;
|
|
NET
|
read/write
|
本sheet显示系统中每个网络适配器的数据传输速率(千字节/秒)
|
|
JFSFILE
|
JFS Filespace %Used Hostname
|
执行间隔时间列表;
|
|
file system/LV
|
文件系统以及mount磁盘设备已使用空间百分比;
|
|
JFSINODE
|
JFS Inode %Used Hostname
|
执行间隔时间列表;
|
|
file system/LV
|
文件系统以及mount磁盘设备的inode已使用空间百分比;
|
|
MEM
|
Memory Hostname
|
执行间隔时间列表;
|
|
Real Free %
|
实际剩余内存百分比;
|
|
Virtual free %
|
虚拟剩余内存百分比;
|
|
Real free(MB)
|
实际剩余内存大小;(MB)
|
|
Virtual free(MB)
|
虚拟剩余内存大小;(MB)
|
|
Real total(MB)
|
实际内存总体大小;(MB)
|
|
Virtual total(MB)
|
虚拟内存总体大小;(MB)
|
|
PAGE
|
faults
|
每秒的page faults(页错误)数;
|
|
pgin
|
每秒钟所读入的页数,包括从文件系统读取的页数
|
|
pgout
|
每秒钟所写出的页数,包括写到文件系统的页数
|
|
pgsin
|
每秒钟从页面空间所读取的页数
|
|
pgsout
|
每秒钟写到页面空间的页数
|
|
reclaims
|
从nmon回收这项之前的10个,和vmstat报告的值是一样的,代表了页替换机制释放的pages/sec的数量
|
|
scans
|
扫描页替换机制的pages/sec的数量,和vmstat报告的值是一样的,页替换在空闲页数量到达最小值时初始化,在空闲到达最大值时停止
|
|
cycles
|
周期 times/sec的数值,页替换机制需要扫描整个页表,来补充空闲列表。这和vmstat报告的cy数值一样,只是vmstat报告的这个值是整形值,而nmon报告的是实型值
|
|
fsin
|
分析器计算的数据为pgin-pgsin的图形处理所用
|
|
fsout
|
分析器计算的数据为pgout-pgsout的图形处理所用
|
|
sr/fr
|
分析器计算的数据为scans/reclaims的图形处理所用
|
6、命令的操作
nmon 命令
用途
以交互方式显示本地系统统计信息并以记录方式记录系统统计信息。
语法
交互方式:
nmon [ -h ]
nmon [ -s < seconds > ] [ -c < count > ] [ -b ] [ -B ] [ -g < filename > ] [ -k disklist ] [ -C < process1:process2:..:processN > ]
记录方式:
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 ] [ -G ] [ -K ] [ -o outputpath ] [ -D ] [ -E ] [ -J ] [ -V ] [ -P ] [ -M ] [ -N ] [ -W ] [ -S ] [ -^ ] [ -O ] [ -L ] [ -I percent ] [ -A ] [ -m < dir > ] [ -Z priority ]
注:
在记录方式下,仅指定 -f、-F、-z、-x 或 -X 标志的其中之一作为第一个参数。
描述
nmon 命令显示和记录本地系统信息。此命令可以采用交互方式或记录方式运行。如果指定 -F、-f、-X、-x 和 -Z 标志中的任何一个,那么 nmon 命令处于记录方式。否则 nmon 命令处于交互方式。
nmon 命令以交互方式提供下列视图:
系统资源视图(使用 r 键)
进程视图(使用 t 和 u 键)
AIO 进程视图(使用 A 键)
处理器使用情况小视图(使用 c 键)
处理器使用情况大视图(使用 C 键)
共享处理器逻辑分区视图(使用 p 键)
NFS 面板(使用 N 键)
网络接口视图(使用 n 键)
WLM 视图(使用 W 键)
磁盘繁忙情况图(使用 o 键)
磁盘组(使用 g 键)
ESS 虚拟路径统计信息视图(使用 e 键)
JFS 视图(使用 j 键)
内核统计信息(使用 k 键)
长期处理器平均使用率视图(使用 l 键)
大页分析(使用 L 键)
调页空间(使用 P 键)
卷组统计信息(使用 V 键)
磁盘统计信息(使用 D 键)
磁盘统计信息及图形(使用 d 键)
内存和调页统计信息(使用 m 键)
适配器 I/O 统计信息(使用 a 键)
共享以太网适配器统计信息(使用 O 键)
冗余检查良好/警告/危险视图(使用 v 键)
详细信息页统计信息(使用 M 键)
光纤通道适配器统计信息(使用 ^ 键)
在记录方式下,此命令会生成 .nmon 文件。可以通过打开这些文件来直接进行查看,也可以使用后处理工具(例如,nmon 分析器)来查看。在记录期间,nmon 工具会与 shell 断开连接,以确保该命令即使在您注销的情况下仍然继续运行。
如果每次启动 nmon 命令时使用同一组键,那么可将这些键放在 NMON shell 变量中。例如,可运行以下命令:
export NMON=mcd
然后运行 nmon 命令。
要从命令行停止 nmon 命令,请将 kill -USR2 与 nmon 进程标识配合使用。
要显示 nmon 记录的后台进程标识,请将 nmon 命令与 -p 标志配合使用。
要限制 nmon 命令列示的进程(联机或至文件),可在从 NMONCMD0 至 NMONCMD63 的环境变量中设置程序名称,或将 -C 标志与 cmd:cmd:cmd 参数配合使用。例如,可输入以下命令:
nmon -C ksh:vi:syncd
要将 nmon 列示的磁盘限制为最多 64 个磁盘(仅限于联机磁盘),请将 -k 标志与 diskname 参数配合使用。例如,可输入以下命令:
nmon -k hdisk2,hdisk0,hdisk3
在记录期间,nmon 工具会与 shell 断开连接,以确保该命令即使在您注销的情况下仍然继续运行。如果使用“随需应变”记录设施触发了记录,情况并非如此。
在 nmon 中记录或监视日志文件系统(JFS)统计信息可避免卸载文件系统,原因是收集统计信息时该文件系统在使用中。
在工作负载分区(WPAR)中,nmon 命令会显示处理器和内存统计信息的全局值。余下值是特定于WPAR的。不能在WPAR中检索以下统计信息,并且 nmon 屏幕不支持它们出现在WPAR中:
磁盘、磁盘 I/O 图、磁盘繁忙情况图、磁盘组
磁盘适配器
调页空间
卷组
ESS/虚拟路径
光纤通道适配器
VIOS 共享以太网适配器
处于交互方式的标志
可在交互方式下使用下列标志。
|
-s < seconds >
|
刷新屏幕之间的时间间隔。缺省值为 2 秒。
|
|
-c < count >
|
必须刷新屏幕的次数。
|
|
-g < filename >
|
其中包含用户定义的磁盘组的文件,可以使用 filename 参数来指定此文件。文件中的每一行以组名开头。磁盘列表跟在组名后面,各个硬盘之间用空格分隔。该文件最多可包含 64 个磁盘组。硬盘可属于各种磁盘组。
|
|
-b
|
显示黑白方式的视图。
|
|
-B
|
不要在视图中包括框。缺省情况下该命令会显示框。
|
|
-h
|
显示帮助信息。
|
|
-k < disklist >
|
仅报告磁盘列表中的磁盘。
|
处于记录方式的标志
|
-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
|
指定命令忽略最繁忙进程统计信息时的进程阈值百分比。缺省百分比为 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)部分。
|
参数
|
disklist
|
指定磁盘列表。
|
|
dir
|
指定目录。
|
|
dpl
|
指定每行上要列示的磁盘数。
|
|
filename
|
指定包含所选磁盘组的文件。
|
|
number
|
指定刷新次数。
|
|
count
|
指定记录次数。
|
|
percent
|
指定处理器使用资源的百分比。
|
|
priority
|
指定要运行的进程的优先级。
|
|
runname
|
指定要运行的电子表格文件中的 runname 字段的值。
|
|
seconds
|
指定刷新快照的时间间隔(以秒计)。
|
|
outputpath
|
指定输出文件的路径。
|