当前位置:首页 > 技术分析 > 正文内容

偶然发现的性能监控工具让人惊喜!不打算试试嘛?

ruisui883个月前 (02-03)技术分析15

概述

  前段时间讲述了Jmeter利用插件PerfMon Metrics Collector来监控压测过程中服务器资源的消耗。

  一个偶然机会,我发现nmon这个工具挺不错。nmon,一款开源性能监控工具,用于监控linux系统的资源消耗信息,并能把结果输出到文件中,然后通过nmon_analyser工具产生数据文件与图形化结果。

  和Jmeter插件比起来,nmon记录的信息更加全面一些。


  nmon的下载安装

  nmon下载地址:
http://nmon.sourceforge.net/pmwiki.php

  nmon analyser下载地址:
http://nmon.sourceforge.net/pmwiki.php?n=Site.Nmon-Analyser

  nmon根据自己系统版本下载对应的安装包,本次测试使用的是
nmon16m_helpsystems.tar.gz ,nmon analyser下载最新的安装包,本次测试使用的是 nmon_analyser_v66.zip 。

  1.将下载的nmon安装包上传到Linux新建目录并解压:

[test@node06 ~]$ cd /usr/local

[test@node06 local]$ mkdir nmon

[test@node06 local]$ cd nmon

[test@node06 nmon]$ tar -zxvf nmon16m_helpsystems.tar.gz


  2.根据自己系统的版本,给命令赋予可执行权限:

1 [test@node06 nmon]$ cat /etc/redhat-release

2 CentOS release 6.9 (Final)

3 [test@node06 nmon]$ chmod +x nmon_x86_64_centos6


  3.在命令行输入 ./nmon_x86_64_centos6 即可打开nmon界面。

  在上面的交互式窗口中,可以使用nmon 快捷键来显示不同的系统资源统计数据:

  q : 停止并退出 Nmon

  h : 查看帮助

  c : 查看 CPU 统计数据

  m : 查看内存统计数据

  d : 查看硬盘统计数据

  k : 查看内核统计数据

  n : 查看网络统计数据

  N : 查看 NFS 统计数据

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

  t : 查看高耗进程

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

  v : 详细模式

  此时,我们可以通过快捷键来调取关心的系统资源进行显示,该种方式显示信息实时性强,能够及时掌握系统承受压力下的运行情况。

  配置nmon的环境变量

  完成以上的配置后,已经可以正常使用nmon了。但是,大家有没有发现一个问题,那就是我们想使用nmon时必须找到该命令的详细路径才能使用,这样就很不方便了。此时,我们需要将nmon的命令添加到系统环境变量中去,以后我们就可以在任何地方使用该命令。

  1.修改启动文件名称,让名称简单化,修改完成执行一次试试:

[test@node06 nmon]$ mv nmon_x86_64_centos6 nmon

[test@node06 nmon]$ ./nmon


  2.在命令行输入 vim /etc/profile ,将以下内容粘贴到文本末尾,路径要改为自己的安装路径:

PATH=$PATH:/usr/local/nmon

export PATH


  3.在命令行输入 source /etc/profile 使配置生效,此时,可以在任意目录执行 nmon 命令来启动nmon。


  监控

  我们使用nmon来监控Jmeter压测期间的系统资源消耗情况。

  1.在nmon目录下新建logs文件夹,用来存放监控文件:

[test@node06 ~]$ cd /usr/local/nmon/

[test@node06 nmon]$ mkdir logs


  2.在命令行输入执行命令:nmon -s 1 -c 80 -f -m /usr/local/nmon/logs。

  参数说明:

  -s 1:每隔n秒抽样一次,这里为1秒

  -c 80:取出多少个抽样数量,这里为80,即监控=1*80/60=1分钟20秒

  -f:按标准格式输出文件名称:_YYMMDD_HHMM.nmon

  -m:指定监控文件的存放目录,-m后跟指定目录,如果不指定目录会在该命令的源目录下生成相应的监控文件

  此命令启动后,会在我们指定的目录下生成监控文件,并持续写入资源数据,直至80个监控点收集完成。

  在此期间,测试人员不需要去手动干预。如果想停止监控,查询进程号,然后杀死该进程即可。

[test@node06 ~]$ ps -ef|grep nmon

test 8863 1 0 17:05 pts/1 00:00:00 nmon -s 1 -c 120 -f -m /usr/local/nmon/logs/

test 9111 25160 0 17:07 pts/1 00:00:00 grep nmon

[test@node06 ~]$ kill 8863

-bash: kill: (8863) - No such process


  这里因为nmon已运行结束,所以当我kill的时候会提示 No such process 。

  3.运行Jmeter脚本,直至脚本运行结束。


  本次压测只为了讲述使用流程,测试结果中TPS不具实际意义,为避免不必要的争议,这里将其马赛克了。


  查看和分析压测结果

  1.将生成的监控文件下载到本地。

  2.将本地的 nmon_analyser_v66.zip 解压,解压后的文件夹内有.pdf和.xlsm两个文件,我们打开.xlsm文件。

  3.点击Analyse nomn data按钮,将下载到本地的监控文件添加进去,最后会生成一个.xlsx文件,这个文件里就是我们需要的数据报告。


  注意:nmon analyser需要借助Excel的宏,WPS默认没有安装宏,即使安装了插件也容易出现异常情况,建议使用Microsoft Excel工作表。

  宏语言 Visual Basic for Application(VBA). Visual Basic是windows环境下开发应用软件的一种通用程序设计语言,功能强大,简便易用。

  VBA是它的一个子集,可以广泛地应用于Microsoft公司开发的各种软件中,例如Word、Excel、Access等。

  4.需要关注的一些数据。

  1)CPU_ALL,是服务器cpu使用率的详细数据。


  User%:显示在用户模式下执行的程序所使用的 CPU 百分比。

  Sys%:显示在内核模式下执行的程序所使用的 CPU 百分比。

  Wait%:显示等待 IO 所花的时间百分比。

  Idle%:显示 CPU 的空闲时间百分比。


  有效行:由于nmon启动时间未必是应用平稳的时间,同时nmon监控时间段也许比应用施压的要长。所以nmon的结果里常常存在一些明显不合理的数据,比如前几次结果的CPU等占用明显低于中段的平均数据,或者后面几次采样结果很小,对于这样的数据我们在分析的时候要予以过滤。


  2)MEM,是服务器内存使用率的概况。


  在MEM表里面使用如下公式计算出每行的内存使用率并进行取平均:(Memtotal - Memfree - cached - buffers)/Memtotal * 100即( =(B2-F2-K2-N2)/B2*100)。

  通过分析内存使用率的趋势,可定位是否内存泄露情况。

  有人看到内存使用率是99%,就认为内存用满了,并没有区分内存分页是什么类型,这样武断的说内存用满了是不科学的。在AIX上主要关注的是计算内存占整个物理内存的百分比,linux上主要关注的是active内存占整个物理内存的百分比。


  3)Disk_SUMM,总体disk读、写以及I/O操作。


  Disk Read kb/s 每个磁盘执行采样数据;(磁盘设备的读速率)

  Disk Write kb/s 每个磁盘执行采样数据;(磁盘设备的写速率)

  IO/sec 每秒进行的IO数(一次IO就是控制操作一次读或写,IO块就是读或写的大小),图中为上方黑色的线,报告中写的是这个参数的值。

  4)NET,网络:


  Total read 每秒接收到的千字节的数目,如图蓝色部分;Total write 每秒发送的千字节的数目,如图橙色部分。

  网络=Total read-Total write。

  网络的指标一般要根据设备来确定,百兆网卡的意思是每秒能够传输的网络流量是100Mbps,即最大的下载速度是12.5MB/s,一般服务器是千兆网卡,即125MB/s。

扫描二维码推送至手机访问。

版权声明:本文由ruisui88发布,如需转载请注明出处。

本文链接:http://www.ruisui88.com/post/644.html

标签: node xlsx
分享给朋友:

“偶然发现的性能监控工具让人惊喜!不打算试试嘛?” 的相关文章

代码分支规范

一.gitflow工作流说明:主分支:master,稳定版本代码分支,对外可以随时编译发布的分支,不允许直接Push代码,只能请求合并(pull request),且只接受hotfix、release分支的代码合并。gitlab上做限制。热修复分支:hotfix,针对现场紧急问题、bug修复的代码分...

VIM配置整理

一、基本配色set number set showcmd set incsearch set expandtab set showcmd set history=400 set autoread set ffs=unix,mac,dos set hlsearch set shiftwidth=2 s...

HTML5最新版本介绍

HTML5是HTML4.01和XHTML1.0之后超文本标记语言的最新版本,由一群自由思想者设计,最终实现了多媒体支持、交互性、更智能的表单和更好的语义标注。 HTML 5不只是 HTML规范的最新版本,它是用于生成现代 Web内容的一系列相关技术的总称,其中最重要的三个技术是:HTML5核心规范...

《暗黑破坏神 2:重制版》PC 版 2.3 版本发布,支持英伟达 DLSS

IT之家 12 月 3 日消息,暴雪为《暗黑破坏神 2:重制版》PC 版发布了更新 2.3 版本,添加了“离线难度缩放”滑块(玩家可以在单人游戏时增加挑战和奖励的级别)、多项辅助功能和用户界面改进,以及英伟达 DLSS 支持。玩法改进:玩家现在可以在离线游戏的选项菜单中使用“游戏难度等级”,它提供与...

Gemini应用在Android上广泛推出2.0闪电模式切换器

#头条精品计划# 快速导读谷歌(搜索)应用的测试频道在安卓设备的双子应用中推出了2.0闪电实验功能,现已向稳定用户开放。双子应用通过谷歌应用运行,目前推出的15.50版本中,用户可通过模型选择器体验不同选项,包括1.5专业版、1.5闪电版和2.0闪电实验版。2.0闪电实验模型提供了更快的响应速度和优...

vue3使用vue-router路由(路由懒加载、路由传参)

vue-router 是 vue的一个插件库1. 专门用来实现一个SPA单页面应用2 .基于vue的项目基本都会用到此库SPA的理解1) 单页Web应用(single page web application,SPA)2) 整个应用只有一个完整的页面3) 点击页面中的链接不会刷新页面, 本身也不会向...