关于nmon的超细干货,充满了对软测人满满的爱~
说到服务器资源监控,你的第一反应,是不是 nmon 这个工具?
如果你不是,或者你不会 nmon 进行服务器资源监控,请认真看下这篇文章,因为,这可能是国内用一篇文章,对 nmon 进行最详尽讲解的。
简介
nmon 是 Nigel's performance Monitor for Linux(nigel 的 Linux 性能监控器)的英文缩写;它有三种运行模式,分别是:实时屏幕模式、数据收集模式、定时计划执行模式。
这款工具运行时,本身资源消耗很小,而且监控的资源种类比较多,使用非常简单,所以,在没有搭建专业的监控平台时,很多人都会想到用它来监控服务器。
安装和使用
下载安装:
首先要知道自己监控的 Linux 服务器的发行版本,怎么看呢?
# 查看centos的发行版本 cat /ect/redhat-release
# 查看Ubuntu的发行版本 lsb_release -a
根据看到的系统版本,在 nmon 的 下载页面 中,查找支持对应版本的最新 nmon 版本,下载完成之后,在 Linux 中,解压下载包
# 本地下载,然后通过sftp方式上传到linux服务器任意文件路径
# 或
# 在linux中用wget 下载地址 直接下载到机器的任意文件路径
# 解压 tar -xzvf nmon****.tar.gz
1
实时屏幕模式
看到这样一个黑色窗口,是不是就楞了,不知道怎么做了?看到这样一个自己陌生的东西,千万不要去害怕,你要知道,他们其实都是纸老虎。
从顶部第一行,我们可以看到,当前机器的名称叫localhost,页面数据刷新的时间是 2 秒,当前时间,再往下看,告诉我们输入'h',就能获得更多帮助,接下来,就是操作系统相关信息;再接下来告诉我们,可以使用下面这些键,获得对应功能数据展示。
参数 | 用法 |
c | 带条形图的 CPU 利用率统计信息(CPU 核心线程) |
m | 内存和交换统计 |
d | 磁盘 I/O 繁忙百分比 & 每秒读\写数据量 KB/s 图 |
r | 资源:机器类型,名称,缓存详细信息和操作系统版本以及 Distro + LPAR |
t | top 进程,1 基础、3 性能、4 大小、5 I/O 仅 root 用户可用 |
n | 网络统计信息和错误(如果没有错误,则消失) |
j | 文件系统,包括日记文件系统 |
k | 内核统计信息运行队列,上下文切换,派生,平均负载和正常运行时间 |
U | CPU 使用率统计信息 user, user_nice, system, idle, iowait, irq, softirq, steal, guest, guest_nice |
u | 进程详细信息 |
输入:cmdU
这样,我们就能从屏幕上,实时看到当前服务器资源使用情况,按 q,退出查看
更多参数说明:
2
数据收集模式
如果你的 Linux 系统发行版本是 centos8,则执行 ./nmon_x86_64_centos8 -f ,将开启 nmon 的数据收集模式,该命令后面不在跟参数,则默认为:-s300 -c288
注意: 直接执行这个命令,后面不带参数,该命令将在后台持续运行 24 小时,收集24 小时资源使用情况
使用 -f 开启数据收集模式,还可以跟上其他参数
参数 | 用法 |
-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 行) |
这么多参数,并不需要所有都记住,只需要重点记住几个即可:-f、-s、-c、-m、-p
常用案例:
./nmon_x86_64_centos8 -f # 监控服务器,将结果标准输出,命令将后台持续运行 24 小时
./nmon_x86_64_centos8 -f -s3 -c10 # 每隔3秒收集一次,收集10次,将结果标准输出
./nmon_x86_64_centos8 -f -s3 -c10 -m /tmp/nmon # 每隔3秒收集一次,收集10次, 将结果标准输出到指定路径,注意:文件夹要存在。
更多参数说明:
3
定时计划执行模式
如果你的 Linux 系统发行版本是 centos8,则执行 ./nmon_x86_64_centos8 -x , 将开启 nmon 的定时计划执行模式。如果后面不再添加任何参数,默认为 -s900 -c96 即:每隔 900 秒获取一次数据,总共执行 96,也就是 24 小时,收集的数据结果采用标准输出。
注意:该命令后面,不再加参数,默认执行 24 小时。
另外,还可以使用 -X 参数,这个参数默认为 -s30 -c120 即:每隔 30 秒获取一次数据,总共执行 120 次,也就是 1 个小时。收集的数据结果采用标准输出
-z 用 root 账户运行,收集 1 天数据,输出到/var/perf/tmp 文件夹
结果查看
标准输出结果查看
nmon 的标准输出结果文件为:主机名_年月日_时分。nmon 是一种文本数据文件,可以用文本编辑器打开,但是不便于阅读,可以使用 nmon 的 analysis 工具打开。
在本地电脑上下载 nmon_analysis
http://nmon.sourceforge.net/pmwiki.php?n=Site.Nmon-Analyser
解压 tar 包
从 Linux 服务器上,下载 nmon 的标准输出文件到本地电脑
用 Microsoft Excel 打开解压的"nmon analyser v*.xlsm" 文件,然后启用宏
点击 【Analyze nmon data】按钮,选择从服务器上下载的 nmon 文件,将会自动分析,生成一个 xlsx 的文件,保存,自动会用 Excel 打开,打开我们就能看到多个图表。
技能提升
对于大多少数学习或使用过 nmon 的同学,可能都只是掌握了上面这些,国内的绝大多数的文章也就介绍上面这些技能,但是,Microsoft Excel 却有一个致命缺陷,严重制约了这个工具的使用。
什么问题呢?
如果你使用 nmon 监控的时间比较长,生成的 nmon 文件比较大,大几兆,十几兆,或几十兆,你打开看看,肯定无响应,或者奔溃,有木有!
如果没有的话,那你肯定没有真正用过。
其实,nmon 的结果查看还有其他工具,可以去下载 nmonchar.tar 文件,下载文件到 Linux 服务器上
使用 nmonchar,分析监控生成的 nmon 文件
./nmonchart 被分析的nmon文件.nmon 生成结果文件.html
# 注意:这个命令要能执行,需要有ksh,centos可以使用 yum install ksh 命令安装
下载生成的 HTML 文件到本地
是不是,就急着去用浏览器打开,打开看到了什么?
很尴尬是不是,什么都没有,点击上面的按钮,也,没什么用。
为什么呢?因为这个文件渲染用到 js,跑到外星去啦,相信你明白的,如果你能去外星走一遭,你就会看到
这个是不是比 Excel 的要好看些,重要的是不用再害怕文件太大,无法打开了。
好了,这种不对外讲的技术都给大家讲了,你学会了吗?
文末答疑:
大家关于今天的内容、或者是关于软件测试的其他方面内容,有疑惑的话,欢迎评论区留言啦!
柠檬班软件测试——专注于最新最前沿的软件测试技术,解决你的测试技术烦恼,想要获取100G学习包+最新学习视频+工具安装包,加微信173-5287-1687,免费领取哦~