linux 性能监控工具- nmon
<p>[TOC]</p>
<h2>1.认识nmon</h2>
<ul>
<li>
<h4>简介</h4>
<p>nmon是一种在AIX与各种Linux操作系统上广泛使用的监控与分析工具,它能在系统运行过程中实时地捕捉系统资源的使用情况,记录的信息比较全面,并且能输出结果到文件中,然后通过nmon_analyzer工具产生数据文件与图形化结果</p>
</li>
<li>
<h4>nmon可监控的数据类型</h4>
<p>内存使用情况
磁盘适配器
文件系统中的可用空间
CPU使用率
页面空间和页面速度
异步I/O,仅适用于AIX
网络文件系统(NFS)
磁盘I/O速度和读写比率
服务器详细信息和资源
内核统计信息
消耗资源最多的进程
运行队列信息</p>
</li>
<li>
<h4>特点</h4>
<p>① 占用系统资源少(一般不到2%)
② 功能强大(监控数据类型全面)
③ 结合grafana之类的仪表图,可以更直观的实时展示所监控的数据
④ 移植性、兼容性较好</p>
</li>
</ul>
<h2>2.nmon下载安装</h2>
<ul>
<li>
<h4>检查安装环境</h4>
<p>查看操作系统信息:
<code>uname -a</code>
<img src="http://60.191.64.5:16100/server/index.php?s=/api/attachment/visitFile/sign/94fa8898e513a9ee37239383d9dc70b0" alt="" /></p>
</li>
<li>
<h4>下载</h4>
<p>根据查出的服务器信息选择版本:
[点击下载nmon](<a href="http://101.69.243.254:5010/share/sO4SfErm">http://101.69.243.254:5010/share/sO4SfErm</a> "点击下载")
<img src="http://60.191.64.5:16100/server/index.php?s=/api/attachment/visitFile/sign/671545ea59d9ece7a56c778078828dff" alt="" /></p>
</li>
<li>
<h4>安装</h4>
<p>创建一个nmon文件夹:
<code>mkdir -p /risen/soft/nmon</code>
选择上传合适的nmon版本到文件夹:
<img src="http://60.191.64.5:16100/server/index.php?s=/api/attachment/visitFile/sign/330855e4c6f4dfb4bfc89635cb584720" alt="" />
给工具授权:
<code>chmod -R +x /risen/soft/nmon/</code></p>
</li>
</ul>
<h2>3.运行nmon</h2>
<ul>
<li>
<h4>完成上面的操作后,切换到工具目录:</h4>
<p><code>/risen/soft/nmon/nmon_x86_64</code></p>
</li>
<li>
<h4>出现如下界面,说明安装成功:</h4>
<p><img src="http://60.191.64.5:16100/server/index.php?s=/api/attachment/visitFile/sign/af42f5d38f3fd2717005c003821c0982" alt="" /></p>
</li>
<li>
<h4>常用快捷命令说明:</h4>
<pre><code class="language-shell"># c
查看CPU相关信息
# m
查看内存相关信息
# d
查看磁盘相关信息
# n
查看网络相关信息
# t
查看相关进程信息
# h
查看帮助相关信息
# q
退出nmon</code></pre>
<p>输入快捷命令显示结果如下:
<img src="http://60.191.64.5:16100/server/index.php?s=/api/attachment/visitFile/sign/ec2d6293a9e8e07ebc01549f530e47d2" alt="" /></p>
</li>
</ul>
<h2>4.采集数据</h2>
<ul>
<li>
<h4>nmon通过命令行启动监控,捕获服务器的各项数据</h4>
<p>命令如下:
<code>/risen/soft/nmon/nmon_x86_64 -s 10 -c 60 -f -m /risen/soft/nmon</code></p>
<pre><code># 参数说明
-f 监控结果以文件形式输出,默认机器名+日期.nmon格式
-F 指定输出的文件名,比如test.nmon
-s 每隔多少秒抽样一次,单位是秒,上述命令配置是10s
-c 采样次数,上述命令配置是60,即监控总时长为10*60=600秒
-m 指定生成的文件目录</code></pre>
<p>该命令执行后,会在/risen/soft/nmon目录下生成以hostname_YYYYMMDD_HHMM.nmon格式命名的监控文件,并将监控数据写入文件
<img src="http://60.191.64.5:16100/server/index.php?s=/api/attachment/visitFile/sign/9b7689c40230bf283cd57ff9052422de" alt="" /></p>
</li>
</ul>
<h2>5.解析nmon文件</h2>
<ul>
<li>
<h4>Nmon文件解析工具是nmon analyser</h4>
<p>[点击下载nmon analyser解析工具](<a href="http://101.69.243.254:5010/share/xfQvgOyX">http://101.69.243.254:5010/share/xfQvgOyX</a> "点击下载nmon analyser解析工具")</p>
</li>
<li>
<h4>运行解析工具</h4>
<p>获取工具后,无需安装双击<code>nmon analyser vxx.xlsm</code>格式的文件,即可<code>wps</code>打开工具界面,如图所示:
<img src="http://60.191.64.5:16100/server/index.php?s=/api/attachment/visitFile/sign/27489f488fcf64b51f5168195f5cc16a" alt="" />
安全警告<code>“未安装VBA支持库,无法运行文档中的宏”</code>,[点击下载VBD支持库](<a href="http://101.69.243.254:5010/share/xfQvgOyX">http://101.69.243.254:5010/share/xfQvgOyX</a> "点击下载VBD")</p>
</li>
<li>
<h4>VBA支持库安装好之后再次打开,点击启动宏</h4>
<p><img src="http://60.191.64.5:16100/server/index.php?s=/api/attachment/visitFile/sign/308272d28b0c39eb57946e67ad179412" alt="" /></p>
</li>
<li>
<h4>解析处理nmon格式文件</h4>
<p>点击【Analyze nmon data】,在windows文件选择框中选择待分析的nmon文件
<img src="http://60.191.64.5:16100/server/index.php?s=/api/attachment/visitFile/sign/c332ce46c2b84e79a9ed5cbee97c3af8" alt="" />
等待分析处理完成后,会在生成nmon同名但后缀名为.xlsx的文件,后续分析在该xlsx文件中进行即可
<img src="http://60.191.64.5:16100/server/index.php?s=/api/attachment/visitFile/sign/d6d5d28711c6a7a2cd119ef7b4974007" alt="" /></p>
</li>
</ul>
<h2>6.分析结果文件</h2>
<p>通过nmon analyser工具,我们已经将nmon文件转换成xlsx格式的结果文件,打开结果文件,可以发现每个sheet页对应一个指标数据,一般在性能测试中,主要关注以下指标。</p>
<ul>
<li>
<h4>系统汇总页面(SYS_SUMM):</h4>
<p>该页面主要显示系统CPU(蓝线)和I/O(粉红线)的使用情况,其中坐标左纵轴为cpu(user%+sys%)使用率,横轴为运行时长,右纵轴为磁盘传输次数(Disk xfers),坐标图下方展示统计数据
<img src="http://60.191.64.5:16100/server/index.php?s=/api/attachment/visitFile/sign/3c6d3e3d6d7c777d81688918941c37a0" alt="" /></p>
<pre><code>User%为用户进程的CPU占比
Sys%为系统和中断的CPU占比
Wait%为进程阻塞等待完成一次IO请求的CPU占比
Idle%为空闲CPU占比
通常,CPU被充分使用的经验值是:User%:65%-70%;Sys%:30%-35%;Idle%:0%-5%</code></pre>
</li>
<li>
<h4>CPU使用情况(CPU_ALL、CPU_SUMM):</h4>
<p>CPU_ALL页面展示在采样周期内服务器的CPU的使用情况,实际上,与SYS_SUMM展示的CPU数据是相同的,区别只是前者使用线状图表示
<img src="http://60.191.64.5:16100/server/index.php?s=/api/attachment/visitFile/sign/2969212643d6f7ed4a8a468be60b629b" alt="" />
CPU_SUMM页面展示的是每颗CPU的使用情况,与使用top命令,按数字键”1”显示各颗CPU的效果是一样的
<img src="http://60.191.64.5:16100/server/index.php?s=/api/attachment/visitFile/sign/eb8de759254e69576b9dc4e5f1151b74" alt="" /></p>
</li>
<li>
<h4>磁盘使用情况(DISK_SUMM、DISKBUSY):</h4>
<p>DISK_SUMM页面主要显示磁盘读、写、IO情况,其中,需要注意的是:某一时间点的磁盘读写数据(Disk Read KB/s\Disk Write KB/s)等于该时间点上所有磁盘和分区的Read/Write的速率(KB/s)之和,分别与页面DISKREAD、DISKWRITE对应;某一采集时间点的IO/sec等于页面DISKXFER中该时间点上所有磁盘和分区的IO/sec之和。因此,该时间点上的I/O值统计是会有重复的
<img src="http://60.191.64.5:16100/server/index.php?s=/api/attachment/visitFile/sign/92cee23b717b171ca2d68ca115000680" alt="" />
DISKBUSY页面主要显示各个磁盘及分区的繁忙程度,是磁盘使用时间和全部时间的比值,即磁盘有百分之多少时间是活动的。通常,根据该页面显示的磁盘百分比数据,可以快速了解该磁盘的使用情况
<img src="http://60.191.64.5:16100/server/index.php?s=/api/attachment/visitFile/sign/5e5cbc36349e9e9b817835df548d2531" alt="" /></p>
</li>
<li>
<h4>内存使用情况(MEM):</h4>
<p>MEM页面主要显示系统总内存、已用内存、可用内存、swap、cached等内存统计信息,统计单位为MB,图表左轴有个”千”字,单位换算后,memfree约23G
<img src="http://60.191.64.5:16100/server/index.php?s=/api/attachment/visitFile/sign/d464a94fbc224d0221c8f58b1ca646ac" alt="" /></p>
</li>
<li>
<h4>网络使用情况(NET):</h4>
<p>NET页面显示服务器各个网络适配器读写数据情况,单位KB/s,注意与带宽单位(bps)的换算,1MB/s = 8Mbps
<img src="http://60.191.64.5:16100/server/index.php?s=/api/attachment/visitFile/sign/6f052741f930c29bf067c19ccc49a233" alt="" /></p>
</li>
</ul>