一、nmon下载使用|数据采集
1. NMON版本选择和下载
以Linux服务器为例,不同的操作系统内核需要选择对应版本的NMON安装包使用,首先查看被监控服务器内核版本。el7.x86_64:el7代表意思是Centos7.x版本。
[root@centos7 ~]# uname -a
Linux centos7 3.10.0-862.el7.x86_64 #1 SMP Fri Apr 20 16:44:24 UTC 2018 x86_64
NMON官网下载地址:http://nmon.sourceforge.net/pmwiki.php?n=Site.Download,查看右侧适用内核版本下载左侧安装包到本地。
2.NMOM部署使用和数据采集
服务器上新建nmon目录,将nmon下载包通过rz命令或者文件传输工具上传nmon目录下并解压。解压后效果如下,压缩包中包含不同内核不同版本的nmon资源监控脚本,使用时选择选择对应版本的脚本使用。
给nmon目录授权.
chmod +x nmon
nmon目录下执行对应脚本,弹出启动界面。
./nmon_x86_64_centos7
键盘输入指令,界面弹出对应窗口信息,常用命令如下:
q : 停止并退出 Nmon
h : 查看帮助
c : 查看 CPU 统计数据
m : 查看内存统计数据
d : 查看硬盘统计数据
k : 查看内核统计数据
n : 查看网络统计数据
N : 查看 NFS 统计数据
j : 查看文件系统统计数据
t : 查看高耗进程
V : 查看虚拟内存统计数据
v : 详细模式
键盘输入c,再输入n,界面如下:
在实际使用过程中,会使用下面操作进行持续监控采集服务器资源信息。
进入nmon目录下,使用下列命令
./nmon_x86_64_centos7 -f -T -s 5 -c 20 -m .
参数 解释说明
-f 生成文件,文件名=主机名+当前时间.nmon
-T 显示资源占有率较高的进程
-s -s 5表示每隔5秒采集一次数据
-c -c 20表示总共采集20次数据
-m 指定文件保存目录
上面的持续监控命令执行后会在指定的文件保存目录下生成一个.nmon后缀的文件,该文件支持tail等命令。
注意:命令启动后中途需要停止使用ps -ef | grep nmon,查找进程杀死即可。
使用nmon监控脚本采集得到.nmon后缀的文件,该文件需要进一步处理才能得到可视化数据,下面介绍官方提供的2种数据处理工具介绍给大家。
二、nmonchart下载使用|数据整理
nmonchart是用于AIX或LInux的Korn Shell脚本,用于将.nmon后缀文件生成html文件,以网页形式展示nmon监控的主机资源信息。
nmonchart官网下载:nmon for Linux | Site / Nmonchart,下载最新版本即可
将下载的tar包上传到linux服务器上新建的ces目录下解压,将.nmon后缀文件移到该目录下,并执行对应的Korn脚本(linux系统需要有ksh插件)生成html文件
执行命令生成html文件
./nmonchart centos7_220218_1839.nmon centos7_220218_1839.html
如果执行报错:-bash: ./nmonchart: /usr/bin/ksh: 坏的解释器: 没有那个文件或目录
需要安装ksh插件,执行如下命令后再次执行生成html命令:
yum install ksh
安装之后,还是提示这个异常,查看提示中的/usr/bin/下的文件
是否存在ksh,如果没有,使用find / -name ksh查找ksh所在位置
然后编辑nmonchart文件 vim nmonchart ,修改第一行#!/usr/bin/ksh 为#!+ksh所在位置
然后再执行命令就好了。
将生成的html文件取出到本地,修改内部google链接保存后使用浏览器查看,查看文件需要链接外部网络。
原有代码如下:
<script type="text/javascript" src="https://www.google.com/jsapi">
</script>
修改src为:
<script type="text/javascript" src="https://www.gstatic.com/charts/loader.js">
</script>
最终效果如下:
图标中相关解释如下(数据来源于官网说明)
- PHYSICAL_CPU - PhysicalCPU、VirtualCPU 和权利(仅限 AIX LPAR 统计信息))
- POOLIDLE - 如果在 LPAR 级别打开 PoolIdle 和池 CPU 计数(仅限 AIX
- CPU_UTILisation - User%、System%、Wait% 和 Idle%
- CPU_USE - 逻辑 CPU 核心使用(Power SMT 或 x86 超线程)平均(用户%+系统%)
- RUNQ - 以进程数运行队列
- PSWITCH - 内核运行不同程序时的进程切换
- SYSCALL - 请求内核操作的进程的系统调用 - 总调用和读、写调用
- READWRITE - 仅读取和写入系统调用
- FORKEXEC - 系统调用 fork(复制进程)和 exec(用新程序覆盖当前进程)
- FILEIO - 系统调用 - 读 + 写系统调用的字节数 - 包括磁盘、网络套接字和管道
- REALMEM - 总 RAM (MB) 和可用 RAM (MB)(仅限 AIX)
- VIRTMEM - 虚拟内存(分页空间)总计 (MB) 和可用 (MB)(仅限 AIX)
- MEM_LINUX - 总 RAM、可用 RAM (MB) 和其他 Linux 内存统计信息(仅限 Linux)
- SWAP_LINUX - 交换大小 (MB) 和交换免费 (MB (仅限 Linux))
- FSCACHE - 文件系统缓存 (numperm) 大小的百分比与 minperm% 和 maxperm%
- PAGING - 分页空间:页面输入(pgin)和输出(pgout)加上文件系统分页:输入(pgsin)和输出(psout)
- SWAPIN - 进程每秒交换回内存
- TOPSUM - 如果您的 nmon 文件包含 TOP 进程(nmon -t 或 nmon -T) - 按总 CPU 周期、总 I/O KB 和最大内存大小划分的顶级进程的气泡图
- 横轴 = 总 CPU 周期
- 垂直轴生成的 I/O 这可能是网络、磁盘、管道、套接字
- 气泡的大小是内存大小
- TOPCMD - 如果您的 nmon 文件包含 TOP 进程(nmon -t 或 nmon -T) - 前 15 个命令及其 CPU 使用情况。
- NET - 每个网络的网络吞吐量读取和写入,以每秒千字节为单位
- NETPACKET - 每个网络每秒读取和写入数据包的数量
- NETSIZE - 每个网络读取和写入的每个数据包中的平均字节数
- ADAPT_KPS - 每个磁盘适配器的每秒读写吞吐量(以千字节为单位)
- ADAPT_TPS - 每个磁盘适配器的每秒读写事务数
- DISKBUSY - 每个磁盘的磁盘繁忙百分比 - 堆积线
- DISKBUSYu - 每个磁盘的磁盘繁忙百分比 - 未堆叠的行
- DISKREAD - 每个磁盘的磁盘读取吞吐量(以每秒千字节为单位) - 堆叠行
- DISKREADu - 每个磁盘的磁盘读取吞吐量(以每秒千字节为单位) - 未堆叠的行
- DISKWRITE - 每个磁盘的磁盘写入吞吐量(以每秒千字节为单位) - 堆叠行
- DISKWRITEu - 每个磁盘的磁盘写入吞吐量(以每秒千字节为单位) - 未堆叠的行
- DISKBSIZE - 磁盘块大小
- DISKXTER - 每秒磁盘传输
- JFS - 日志文件系统百分比已满
- IPC - 进程间通信意味着信号量和消息队列。
- DGBUSY - 每个磁盘的磁盘组繁忙百分比 - 堆积线
- DGBUSYu - 每个磁盘的磁盘组繁忙百分比 - 未堆叠的行
- DGREAD - 每个磁盘的磁盘组读取吞吐量(以每秒千字节为单位) - 堆叠行
- DGREADu - 每个磁盘的磁盘组读取吞吐量(以每秒千字节为单位) - 未堆叠行
- DGWRITE - 每个磁盘的磁盘组写入吞吐量(以每秒千字节为单位) - 堆叠行
- DGWRITEu - 每个磁盘的磁盘组写入吞吐量(以每秒千字节为单位) - 未堆叠行
- DGBSIZE - 磁盘组块大小
- DGXTER - 每秒磁盘组传输
- MHZ - 用于改变这些 CPU 时钟频率的机器的主 CPU MHz
- CPUUNTIL_ALL - 对于 Linux,它涵盖所有 10 个 CPU 矩阵统计信息
- GPU_UTIL - NVidea GPU 统计数据,GPU CPU 利用率百分比
- GPU_MEM- NVidea GPU 统计数据,GPU 内存利用率百分比
- GPU_TEMP - NVidea GPU 统计数据,C 中的温度
- GPU_WATTS - NVidea GPU 统计数据,电力输入
- GPU_MHZ - NVidea GPU 统计数据,GPU MHz
- DISKSERV - 磁盘服务时间(以毫秒为单位)
- DISKREADSERV - 读取的磁盘服务时间(以毫秒为单位)
- DISKWRITESERV - 写入的磁盘服务时间(以毫秒为单位)
- DISKWAIT - 磁盘等待时间(以毫秒为单位)
三、nmon_analyser下载使用|数据整理
这个工具是一个含VBA的Excel文件,将csv文件生成对应的含图表的Excel文件,官网上说明需要Excel 2003以上的版本支撑。下载到最新版本到本地使用即可。
nmon_analyser官网下载:http://nmon.sourceforge.net/pmwiki.php?n=Site.Nmon-Analyser
首先需要把nmon资源监控工具生成的.nmon后缀文件转换成.csv后缀文件,再将.csv后缀文件下载到本地。
转换命令:sort centos7_220218_1839.nmon>centos7_220218_1839.csv
下载到本地:sz centos7_220218_1839.csv
在mac本或者windows电脑上解压nmon_analyser压缩文件。解压后的文件中pdf为解释说明书,xlsm为启动文件,打开xlsm文件,点击按钮选择csv文件即可生成。
nmonchart与nmon_analyser工具相比,个人推荐优先使用nmonchart工具,该工具对于上万条文本数据生成也只需要10多秒。nmon_analyser工具对于电脑内存要求较高,运行内存16G以下电脑大概率会被卡住,导致生成失败。