性能测试中对 linux 资源监控常用工具nmon,dstat,jmeter-plugin横评

转自:https://blog.csdn.net/u010798968/article/details/74991833

有时间再整理

前言:nmon,dstat是linux上两款常用的资源监控工具,当然我们可以选择用top,vmstat,ifstat,iostat等命令来了解想要了解的资源使用情况,但是工具的使用能让我们更方便快捷的掌握这些信息;另外,在用jmeter做性能测试时,我们还可以使用jmeter插件,来对linux服务器的资源使用情况进行监控,但是这三者到底谁更好用呢,分别有什么优缺点,笔者打算从以下几方面做个对比测试:

一、安装难易性

二、使用难易性及结果报告

三、运行时对系统资源的消耗

测试环境:CentOS Linux release 7.3.1611 (Core) 

一、安装难易性

1.dstat的安装

执行:yum -y install dstat,即可。

2.nmon的安装

根据系统的发型版本及CPU位数选择相应的压缩包下载,下载后解压缩即可。详情参考笔者的另一篇博客:http://blog.csdn.net/u010798968/article/details/74932124

3.jmeter plugin的安装

3.1.在官网下载jmeter.zip包:https://archive.apache.org/dist/jmeter/binaries/,这里建议下载低一两个版本的包,更稳定,已经安装过jmeter的童鞋可忽略这一步。

3.2.在官网下载jmeter插件的管理扩展包:https://jmeter-plugins.org/install/Install/,下载后放在刚刚解压缩的jmeter包的lib/ext目录下

3.2.1.下载完成后,运行jmeter的bin目录下的jmeter.bat运行,点击主窗口的选项--Plugins Manager:

3.2.2.进入插件管理窗口,勾选PerfMon,点击右下角安装按钮即可,安装好后jmeter会自动重启。并且可以看到jmeter的lib及lib/ext目录下新增了PerfMon的依赖包。

3.3.在官网下载jmeter的代理服务器:https://jmeter-plugins.org/wiki/PerfMonAgent/

下载后传到linux服务器,解压缩即可。

以上,很显然dstat的安装是最简单的,nmon相对简单,jmeter插件安装是最麻烦且耗时的。

二、使用难易性及结果报告

1.dstat的使用

执行dstat,默认显示cpu,磁盘io,网络io,系统内存分页,系统中断次数及上下文切换次数,更多命令可自行dstat --help查看。

并且该命令执行后会持续采集这些信息,按Ctrl+c停止。

执行dstat --output 可生成csv格式的记录文件。

2.nmon的使用

nmon的使用也较简单,详情参考笔者的另一篇博客:http://blog.csdn.net/u010798968/article/details/74932124

3.jmeter插件的使用

3.1在linux服务器进到ServerAgent解压缩的目录,执行./startAgent.sh,启动代理服务器,如下图,停止直接Ctrl+c即可。

默认端口为4444,修改端口vim startAgent.sh,添加端口号即可,注意修改端口之前先看下要用的端口是否已经在使用,lsof -i:端口号 ,如图:

3.2添加监听器:

填写linux服务器IP,端口号,选择要监控的信息即可:

执行测试,会自动将选择的监控信息生成图表:

另外,做性能测试时,一般是使用非GUI执行:cmd 下jmeter -n -t XXX.jmx,在设置监听器时,把测试结果保存到文件即可,执行完后,在该监听器中打开该测试结果:

以上,客观上来讲nmon的学习成本是最小的,dstat适中,需要记住各种指令,jmeter plugin稍微麻烦点,但是对于新手来说,GUI相比命令行还是更直观简便的。

三、运行时对系统资源的消耗

主要考虑服务器资源低消耗时(即无其他进程抢占资源)和服务器资源高消耗时(大量进程抢占资源),这些监控进程对服务器资源的消耗。

a.服务器无资源抢占

1.dstat运行时对系统资源的消耗

执行dstat,再找到dstat的进程:

再用top指令查看其资源使用情况,观察一段时间,发现其对cpu和内存的消耗维持在0.3%和0.4%,可以说是非常小的。

2.运行nmon,找到其进程:

查看其资源消耗,观察一段时间,发现其对cpu和内存的消耗维持在0.0%和0.3%,比dstat还小。

3.运行jmeter ServerAgent,找到其进程:

观察其资源消耗:

以上,在没有资源抢占的情况下,三者对cpu和内存的消耗都非常的小,虽然jmeter plugin因为其本身是个java进程,对内存消耗比dstat和nmon都大了一些,但还是非常的小的。
--------------------- 
作者:Etyero 
来源:CSDN 
原文:https://blog.csdn.net/u010798968/article/details/74991833 
版权声明:本文为博主原创文章,转载请附上博文链接!

猜你喜欢

转载自blog.csdn.net/weixin_41585557/article/details/85618745