nmon+nmonchart用法实现Linux系统生成性能报告

Nmon (Nigel's Monitor)是由IBM 提供、免费监控 AIX 系统与 Linux 系统资源的工具。该工具可将服务器系统资源耗用情况收集起来并输出一个特定的文件,并可利用 excel分析工具(nmon analyser)或网页分析工具(nmonchart)进行数据的统计分析。

nmon 捕获数据到文件

捕获数据到文件,只要运行带 -f 标志的 nmon 命令。执行nmon –f ***后,nmon 将转为后台运行。要查看该进程是否仍在运行,可以输入: ps -ef | grep nmon

安装

# 普通amd64电脑
sudo apt-get install nmon
# 飞腾、鲲鹏芯电脑
wget http://ports.ubuntu.com/pool/universe/n/nmon/nmon_16g+debian-3_arm64.deb
sudo dpkg -i nmon_16g+debian-3_arm64.deb
# 银河麒麟服务器
dnf install nmon

示例:

每1秒捕获数据快照,捕获20次,保存在home文件夹下:

nmon –f -s 1 -c 20 -m /home/

每30秒捕获数据快照,捕获120次,包含进程信息,保存在home文件夹下:

nmon –f -t -s 30 -c 120 -m /home/

每10秒捕获数据快照,捕获60次,保存在当前文件夹:

nmon -f -t -s 10 -c 60

每1秒捕获数据快照,捕获60次,保存在当前文件夹:

nmon -f -t -r nmonreport -s 10 -c 60

采集一天数据,300*288=86400 秒,正好是一天的数据。

nmon -s300 -c288 -f

周一到周五,从早上08点开始,监控10个小时(到18:00整为止),输出到/nmon/log

# A、执行命令:
crontab -e
# B、在最后一行添加如下命令:
 0 8 * * 1,2,3,4,5 nmon -f -N -m /nmon/log -s 30 -c 1200
#表示:周一到周五,从早上08点开始,监控10个小时(到18:00整为止),输出到/nmon/log

参数解释:

命令的含义是:
-f :按标准格式输出文件名称:_YYYYMMDD_HHMM.nmon
-t :输出最耗资源的进程
-s :每隔n秒抽样一次,这里为10秒
-c :取出多少个抽样数量,这里为采集 60 次,即监控 = 10*60 = 600秒 = 10分钟
-m 生成的数据文件的存放目录
nmonreport:监控记录的标题
hostname:主机名
可自行根据自己需要的监控时间段,展开监控。
注:
该命令启动后,会在/usr/local/bin/nmon目录下生成监控文件,并持续写入资源数据,
直至360个监控点收集完成———即监控1小时,这些操作均自动完成,无需手工干预,
测试人员可以继续完成其他操作。
如果想停止该监控,需要通过“#ps –ef | grep nmon”查询进程号,再进行kill -9 nmon的pid,然后杀掉该进程以停止监控。

nmon -h查看更多帮助信息

参数 用法
-f 标准输出到表格文件,默认 -s300 -c288 ,为 24 小时,输出文件格式为:hostname_YMD_HHMM.nmon
-F 类似-f,但是支持指定输出文件的名称
-a GPU 加速,统计信息
-b 切换黑白 和彩色模式
-c 总统计次数
-s 数据统计间隔时间, 单位为:秒
-d 最大的磁盘数,默认 256
-D 与-g 一起使用以添加磁盘等待/服务时间和运行中状态
-g 用户定义的磁盘组获取数据:生成 BBBG 和 DG 行
-I 设置忽略进程和磁盘繁忙阈值(默认为 0.1%),不要使用小于此百分比的百分比保存或显示 proc /磁盘
-J 关闭日志文件系统统计信息收集(可能导致自动挂载 NFS 出现问题)
-l 数据捕获中的每行磁盘数可避免电子表格宽度问题。 默认值为 150。EMC= 64。
-m 把输出文件保存到指定文件夹。通过 cron 启动 nmon 时有用
-M 为每个 CPU 线程添加 MHz 统计信息。 某些 POWER8 型号 CPU 内核的频率可能不同
-N 包括适用于 V2,V3 和 V4 的 NFS 网络文件系统
-p nmon 启动时将输出 PID。 在脚本中很有用,可捕获 PID 以便以后安全停止。
-r 在基准测试中用于记录运行详细信息,以供以后分析[默认主机名]
-t 在输出中包括 top 流程
-T -t 增强,它将命令行参数保存在 UARG 部分中
-U 包括 Linux 10 CPU 使用率统计信息(文件中的 CPUUTIL 行)

nmon数据采集

更多用法

0 0 * * * /usr/local/nmo -s300 -c288 -f -m /home/nmon/ > /dev/null 2>&1
crontab -e
表示:
300*288=86400 秒,正好是一天的数据。
0 8 * * 1,2,3,4,5 /usr/local/nmon -f -N -m /home/nmon/log -s 30 -c 1200
表示:
周一到周五,从早上08点开始,监控10个小时(到18:00整为止),输出到/home/nmon/log。

范例1:
自动按天采集数据:
在 crontab 中增加一条记录:
0 0 * * * nmon -s300 -c288 -f -m /home/ > /dev/null 2>&1:
300*288=86400 秒,正好是一天的数据。

范例2:
A、执行命令:#crontab -e
B、在最后一行添加如下命令:
  0 8 * * 1,2,3,4,5 /nmon/scriptn/mon_x86_rhel52 -f -N -m /nmon/log -s 30 -c 1200
表示:
  周一到周五,从早上08点开始,监控10个小时(到18:00整为止),输出到/nmon/log

nmonchart用法

nmonchart是ksh,需安装ksh才可使用

amd64电脑

sudo apt-get install ksh

ARM芯片国产桌面系统

#下载
wget http://ports.ubuntu.com/pool/universe/k/ksh/ksh_93u+20120801-3.1ubuntu1_arm64.deb
#本地安装
sudo dpkg -i ksh_93u+20120801-3.1ubuntu1_arm64.deb

服务器nmonchart下载

# 下载   wget http://sourceforge.net/projects/nmon/files/nmonchart40.tar
# 解压   tar -xvf nmonchart40.tar 
# 进入解压后的文件夹   cd nmonchart40

nmonchart修改

### 引用GoogleChartAPI(https://www.google.com/jsapi)会被qiang需修改
$ECHO '\t\t<script type="text/javascript" src="https://www.google.com/jsapi"></script>'
### 修改为
$ECHO '\t\t<script type="text/javascript" src="https://www.gstatic.com/charts/loader.js"></script>'

nmonchart使用

ksh nmonchart nmon生成文件.nmon 目标文件.html

提示异常:
安装之后,还是提示这个异常,查看提示中的/usr/bin/下的文件
发现没有ksh,
最后在/bin/下找到了ksh
然后编辑nmonchart文件 vi nmonchart ,修改第一行#!/usr/bin/ksh 为#!/bin/ksh
然后再执行转换命令就好了

查看html

打开目标文件.html就可以看了,相较nmon analyser 只能在Windows上通过Excel或者WPS商业版使用,nmonchart可以使用网页较为方便。

posted @ 2021-05-01 23:09  titansx  阅读(1470)  评论(0)    收藏  举报