分析 AIX 和 Linux 性能的免费工具。
一、软件介绍
1.分析工具
nmon 工具可以帮助在一个屏幕上显示所有重要的性能优化信息,并动态地对其进行更新。这个高效的工具可以工作于任何哑屏幕、telnet 会话、甚至拨号线路。另外,它并不会消耗大量的 CPU 周期,通常低于百分之二。在更新的计算机上,其 CPU 使用率将低于百分之一。
使用哑屏幕,在屏幕上对数据进行显示,并且每隔两秒钟对其进行更新。然而,您可以很容易地将这个时间间隔更改为更长或更短的时间段。如果您拉伸窗口,并在X Windows、VNC、PuTTY 或类似的窗口中显示这些数据,nmon 工具可以同时输出大量的信息。
nmon 工具还可以将相同的数据捕获到一个文本文件,便于以后对报告进行分析和绘制图形。输出文件采用电子表格的格式 (.csv)。
2.性能介绍
nmon 工具可以为 AIX 和 Linux 性能专家提供监视和分析性能数据的功能,其中包括:
CPU 使用率
内存使用情况
内核统计信息和运行队列信息
磁盘 I/O 速度、传输和读/写比率
文件系统中的可用空间
磁盘适配器
网络 I/O 速度、传输和读/写比率
页面空间和页面速度
CPU 和 AIX 规范
消耗资源最多的进程
IBM HTTP Web 缓存
用户自定义的磁盘组
计算机详细信息和资源
异步 I/O,仅适用于 AIX
工作负载管理器 (WLM),仅适用于 AIX
IBM TotalStorage® Enterprise Storage Server® (ESS) 磁盘,仅适用于 AIX
网络文件系统 (NFS)
动态 LPAR (DLPAR) 更改,仅适用于面向 AIX 或 Linux 的 pSeries p5 和 OpenPower
还包括一个用来从 nmon 的输出生成图形并创建可以在 Web 站点显示的 .gif 文件的新工具。
二、软件下载安装
1.下载
nmon下载页:
http://nmon.sourceforge.net/pmwiki.php?n=Site.Download
nmon_analyser下载页:
https://www.ibm.com/developerworks/community/wikis/home?lang=en#!/wiki/Power%20Systems/page/nmon_analyser
注意根据不同的平台,下载不同的nmon包;
这里以centos为例,下载不同的操作系统版本对应的包:
nmon_linux_14i.tar.gz
nmon_x86_64_centos6:兼容CentOS6-64位操作系统
nmon_x86_centos6:兼容CentOS6-32位操作系统
MPG_nmon_for_Linux_14a_binaries.zip
nmon_x86_64_centos5:兼容CentOS5-64位操作系统
nmon_x86_centos5:兼容CentOS5-32位操作系统
2.安装
从下载的包中,取出对应平台的二进制文件,如:nmon_x86_64_centos6(兼容CentOS6-64位操作系统);
上传到CentOS6-64位服务器上,如:/usr/local/bin目录下(/usr/local/bin默认在环境变量中,系统可识别其目录下的可执行程序,可直接运行)
重命名:mv nmon_x86_64_centos6 nmon
增加可执行权限:chmod +x nmon
执行:nmon,确认可以使用;(centos下,当前方式会显示乱码,不推荐使用,下面介绍性能测试过程中,记录监控数据方法)
三、使用nmon监控服务器资源
1.捕获数据到文件
捕获数据到文件,只要运行带 -f 标志的 nmon 命令。执行nmon –f ***后,nmon 将转为后台运行。要查看该进程是否仍在运行,可以输入: ps -ef | grep nmon。
示例:
每1秒捕获数据快照,捕获20次
nmon –f -s 1 -c 20 -m /home/
每30秒捕获数据快照,捕获120次,包含进程信息
nmon –f -t -s 30 -c 120 -m /home/
命令将在当前目录中创建输出文件,其名称为: <hostname>_date_time.nmon。该文件采用逗号分隔值 (CSV) 的格式,并且可以将其直接导入到电子表格中,可进行分析和绘制图形
参数解释:
-s每 X 秒采集一次数据。
-c 采集 Y 次,即为采集X*Y秒的数据。
-f 生成的数据文件名中包含文件创建的时间。
-t在导出的信息中包含前几位的进程信息。
-m 生成的数据文件的存放目录。
这样就会生成一个nmon文件,并每X秒更新一次,采集Y次,直到X*Y秒后。
生成的文件名如:<hostname>_YYYYMMDD_HHMM.nmon,"<hostname>" 是这台主机的主机名。
提前停止监控,可以使用命令杀掉进程,下述方法都可:
1)killall -9 nmon
2)ps -ef | grep nmon,得到PID进程号,再进行kill -9 nmon的pid
3)kill -9 `pidof nmon`
nmon -h查看更多帮助信息。
2.使用nmon analyser生成报表
nmon analyser 工具以 NMON 性能工具生成的文件作为输入,然后将它们转换为 Microsoft Excel 电子表格,并自动地生成相应的图形。
使用wps未能正确执行脚本生成*.xls文件。建议使用Microsoft Excel 2007 或更高版本,必须在打开nmon_analyser.xls时选择启用宏。
操作:将之前生成的 nmon 数据文件传到 Windows 机器上,用 Excel 打开分析工具 nmon analyser v34a.xls 。点击 Excel 文件中的 "Analyse nmon data" 按钮,选择 nmon 数据文件,这样就会生成一个分析后的结果文件: hostname_090824_1306.nmon.xls ,用 Excel 打开生成的文件就可以看到结果了。
注:nmon analyser工具,推荐nmon采样300次或以内,这样生成的图形较为美观。
注:NA_UserGuide v34.doc,该用户手册中有对各图表及列含义进行说明;
3.多台服务器同时进行监控
测试过程中,有可能需要同时监控多台服务器资源情况,这时每一台上面去执行nmon监控命令,较为麻烦,且操作时间点也不一致。
可通过:在一台服务器上,同时远程执行多台服务器的nmon命令操作,以解决该问题。
操作步骤:
1)服务器之间配置信任关系;进行ssh或scp时,无需输入密码。
参见:http://www.51testing.com/html/00/130600-147281.html
2)把需要远程执行的命令写入shell脚本中,以方便执行,参见:nmon.sh;
3)把不同服务器上的日志文件下载到本地PC,通过nmon analyser工具进行分析;也可使用远程执行命令方式,在同一台服务器上进行操作下载.nmon文件(存放目录、文件命名规范,可方便操作);
# cat nmon.sh
#!/bin/bash
mkdir -p /tmp/nmon_monitor
/usr/local/bin/nmon -f -t -s 5 -c 100 -m /tmp/nmon_monitor -F 146.182_$1.nmon
ssh root@192.168.146.180 'mkdir -p /tmp/nmon_monitor;/usr/local/bin/nmon -f -t -s 5 -c 100 -m /tmp/nmon_monitor -F 146.180_'$1'.nmon'
ssh root@192.168.148.137 'mkdir -p /tmp/nmon_monitor;/usr/local/bin/nmon -f -t -s 5 -c 100 -m /tmp/nmon_monitor -F 148.137_'$1'.nmon'
脚本说明:
1)生成的.nmon文件,推荐放在同一目录下,如:-m参数指定的:/tmp/nmon_monitor;
2)生成的.nmon文件,推荐增加IP或hostname标识,下载到本地时,不同服务器数据不会弄混,如:146.182_$1.nmon;
3).nmon文件中,使用了参数$1,用于传参给生成的文件名,如:./nmon.sh 20140901_01;则生成的文件为:146.182_20140901_01.nmon;
4)-s 5 -c 100根据实际指定,这里表示每隔5秒采集一次数据,共采集100次,即持续5*100=500秒;
4.nmon的不足
nmon监控的不足之处:
1)没有负载监控数据;
w/top命令中:
load average: 0.40, 0.53, 0.63
测试过程中,注意使用w或top查看该信息。
2)内存监控数据中,没有used信息,需要计算;
# free
total used free shared buffers cached
Mem: 2075336 1850744 224592 0 595064 539744
-/+ buffers/cache: 715936 1359400
Swap: 2048248 30996 2017252
free命令中显示的used:used=total-free
真实使用used=total-free-cached-buffers
这部分数据,可以在nmon analyser生成的.xls报表中,计算得出,并对应生成图表;
3)IO监控数据中,没有%util信息;
有IO读写速率等相关信息,也可以进行IO问题分析。
四、参考资料
nmon网站:
http://nmon.sourceforge.net/
Linux下使用NMON监控、分析系统性能:
http://blog.itpub.net/23135684/viewspace-626439/
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?