一、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,查看右侧适用内核版本下载左侧安装包到本地。

centos图形资源监视器 centos资源监控平台_centos

2.NMOM部署使用和数据采集 

        服务器上新建nmon目录,将nmon下载包通过rz命令或者文件传输工具上传nmon目录下并解压。解压后效果如下,压缩包中包含不同内核不同版本的nmon资源监控脚本,使用时选择选择对应版本的脚本使用。

centos图形资源监视器 centos资源监控平台_linux_02

         给nmon目录授权.

  chmod +x nmon

        nmon目录下执行对应脚本,弹出启动界面。

./nmon_x86_64_centos7

centos图形资源监视器 centos资源监控平台_后缀_03

         键盘输入指令,界面弹出对应窗口信息,常用命令如下:

q : 停止并退出 Nmon

h : 查看帮助

c : 查看 CPU 统计数据

m : 查看内存统计数据

d : 查看硬盘统计数据

k : 查看内核统计数据

n : 查看网络统计数据

N : 查看 NFS 统计数据

j : 查看文件系统统计数据

t : 查看高耗进程

V : 查看虚拟内存统计数据

v : 详细模式

        键盘输入c,再输入n,界面如下:

centos图形资源监视器 centos资源监控平台_centos_04

         在实际使用过程中,会使用下面操作进行持续监控采集服务器资源信息。

进入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,下载最新版本即可 

centos图形资源监视器 centos资源监控平台_服务器_05

       将下载的tar包上传到linux服务器上新建的ces目录下解压,将.nmon后缀文件移到该目录下,并执行对应的Korn脚本(linux系统需要有ksh插件)生成html文件

centos图形资源监视器 centos资源监控平台_centos图形资源监视器_06

执行命令生成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>

        最终效果如下:

centos图形资源监视器 centos资源监控平台_后缀_07

         图标中相关解释如下(数据来源于官网说明)

  1. PHYSICAL_CPU - PhysicalCPU、VirtualCPU 和权利(仅限 AIX LPAR 统计信息))
  2. POOLIDLE - 如果在 LPAR 级别打开 PoolIdle 和池 CPU 计数(仅限 AIX
  3. CPU_UTILisation - User%、System%、Wait% 和 Idle%
  4. CPU_USE - 逻辑 CPU 核心使用(Power SMT 或 x86 超线程)平均(用户%+系统%)
  5. RUNQ - 以进程数运行队列
  6. PSWITCH - 内核运行不同程序时的进程切换
  7. SYSCALL - 请求内核操作的进程的系统调用 - 总调用和读、写调用
  8. READWRITE - 仅读取和写入系统调用
  9. FORKEXEC - 系统调用 fork(复制进程)和 exec(用新程序覆盖当前进程)
  10. FILEIO - 系统调用 - 读 + 写系统调用的字节数 - 包括磁盘、网络套接字和管道
  11. REALMEM - 总 RAM (MB) 和可用 RAM (MB)(仅限 AIX)
  12. VIRTMEM - 虚拟内存(分页空间)总计 (MB) 和可用 (MB)(仅限 AIX)
  13. MEM_LINUX - 总 RAM、可用 RAM (MB) 和其他 Linux 内存统计信息(仅限 Linux)
  14. SWAP_LINUX - 交换大小 (MB) 和交换免费 (MB (仅限 Linux))
  15. FSCACHE - 文件系统缓存 (numperm) 大小的百分比与 minperm% 和 maxperm%
  16. PAGING - 分页空间:页面输入(pgin)和输出(pgout)加上文件系统分页:输入(pgsin)和输出(psout)
  17. SWAPIN - 进程每秒交换回内存
  18. TOPSUM - 如果您的 nmon 文件包含 TOP 进程(nmon -t 或 nmon -T) - 按总 CPU 周期、总 I/O KB 和最大内存大小划分的顶级进程的气泡图
  • 横轴 = 总 CPU 周期
  • 垂直轴生成的 I/O 这可能是网络、磁盘、管道、套接字
  • 气泡的大小是内存大小
  1. TOPCMD - 如果您的 nmon 文件包含 TOP 进程(nmon -t 或 nmon -T) - 前 15 个命令及其 CPU 使用情况。
  2. NET - 每个网络的网络吞吐量读取和写入,以每秒千字节为单位
  3. NETPACKET - 每个网络每秒读取和写入数据包的数量
  4. NETSIZE - 每个网络读取和写入的每个数据包中的平均字节数
  5. ADAPT_KPS - 每个磁盘适配器的每秒读写吞吐量(以千字节为单位)
  6. ADAPT_TPS - 每个磁盘适配器的每秒读写事务数
  7. DISKBUSY - 每个磁盘的磁盘繁忙百分比 - 堆积线
  8. DISKBUSYu - 每个磁盘的磁盘繁忙百分比 - 未堆叠的行
  9. DISKREAD - 每个磁盘的磁盘读取吞吐量(以每秒千字节为单位) - 堆叠行
  10. DISKREADu - 每个磁盘的磁盘读取吞吐量(以每秒千字节为单位) - 未堆叠的行
  11. DISKWRITE - 每个磁盘的磁盘写入吞吐量(以每秒千字节为单位) - 堆叠行
  12. DISKWRITEu - 每个磁盘的磁盘写入吞吐量(以每秒千字节为单位) - 未堆叠的行
  13. DISKBSIZE - 磁盘块大小
  14. DISKXTER - 每秒磁盘传输
  15. JFS - 日志文件系统百分比已满
  16. IPC - 进程间通信意味着信号量和消息队列。
  17. DGBUSY - 每个磁盘的磁盘组繁忙百分比 - 堆积线
  18. DGBUSYu - 每个磁盘的磁盘组繁忙百分比 - 未堆叠的行
  19. DGREAD - 每个磁盘的磁盘组读取吞吐量(以每秒千字节为单位) - 堆叠行
  20. DGREADu - 每个磁盘的磁盘组读取吞吐量(以每秒千字节为单位) - 未堆叠行
  21. DGWRITE - 每个磁盘的磁盘组写入吞吐量(以每秒千字节为单位) - 堆叠行
  22. DGWRITEu - 每个磁盘的磁盘组写入吞吐量(以每秒千字节为单位) - 未堆叠行
  23. DGBSIZE - 磁盘组块大小
  24. DGXTER - 每秒磁盘组传输
  25. MHZ - 用于改变这些 CPU 时钟频率的机器的主 CPU MHz
  26. CPUUNTIL_ALL - 对于 Linux,它涵盖所有 10 个 CPU 矩阵统计信息
  27. GPU_UTIL - NVidea GPU 统计数据,GPU CPU 利用率百分比
  28. GPU_MEM- NVidea GPU 统计数据,GPU 内存利用率百分比
  29. GPU_TEMP - NVidea GPU 统计数据,C 中的温度
  30. GPU_WATTS - NVidea GPU 统计数据,电力输入
  31. GPU_MHZ - NVidea GPU 统计数据,GPU MHz
  32. DISKSERV - 磁盘服务时间(以毫秒为单位)
  33. DISKREADSERV - 读取的磁盘服务时间(以毫秒为单位)
  34. DISKWRITESERV - 写入的磁盘服务时间(以毫秒为单位)
  35. DISKWAIT - 磁盘等待时间(以毫秒为单位)

 三、nmon_analyser下载使用|数据整理

        这个工具是一个含VBA的Excel文件,将csv文件生成对应的含图表的Excel文件,官网上说明需要Excel 2003以上的版本支撑。下载到最新版本到本地使用即可。

        nmon_analyser官网下载:http://nmon.sourceforge.net/pmwiki.php?n=Site.Nmon-Analyser

centos图形资源监视器 centos资源监控平台_后缀_08

         首先需要把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文件即可生成。 

centos图形资源监视器 centos资源监控平台_后缀_09

        nmonchart与nmon_analyser工具相比,个人推荐优先使用nmonchart工具,该工具对于上万条文本数据生成也只需要10多秒。nmon_analyser工具对于电脑内存要求较高,运行内存16G以下电脑大概率会被卡住,导致生成失败。