jmeter(五十一)_性能测试中的服务器资源监控与分析

概述linux

性能测试过程当中,对服务器资源的监控是必不可少的。这里的资源又分了两块,windows和linuxwindows

 

linux下监控资源tomcat

访问网址http://jmeter-plugins.org/downloads/all/,下载三个文件。其中JMeterPlugins-Standard和JMeterPlugins-Extras是客户端的,ServerAgent是服务端的。服务器

 

前两个是jmeter扩展插件,解压后将jar拷贝包到jmeter的lib/ext目录下,最后一个是服务器监控插件,解压到服务器上tcp

将ServerAgent-2.2.1.zip解压后放在须要监控的服务器上,并执行工具

chmod 777 startAgent.sh 赋权性能

./startAgent.sh 启动监控测试

 

配置端口和ip,端口默认4444url

服务器上能够修改默认端口--./startAgent.sh –udp-port 0 –tcp-port XXXXspa

若是配置正确,可是始终没法监控到服务器,须要考虑 4444  端口是否在服务器防火墙中被禁用!

 

运行查看结果

 

jmeter隐藏功能:指定进程号进行监控。须要双击空白的地方,右边会出现三个点。这边能够根据服务器的pid进程号来监控资源

 

监控CPU

数值都是表明百分比,好比默认配置下在曲线图中看到某个时间的数值是30,即表明此时总的cpu使用时间占比为30%。

两点比较有用的地方值得说明:

1:在Scope区域,能够经过Per Process选项来获取指定进程的CPU使用状况

2:在CPU Cores区域,咱们能够选择监控指定的单个Core。

监控Memory

usedperc(默认)和freeperc两项的数值表明与总内存的百分比,其他指标项的数值都是指内存大小,选中对应项,能够看到Metric Unit区域单位配置将变为可用,一般Mb会比较适合观察。一样,也能够选择监控指定进程的数据

监控Disk I/O

queue(默认)的数值表明等待I/O队列长度,reads、writes分别表明每秒处理的读/写次数,readbytes、writebytes顾名思义,表明每秒读/写的数据量,单位一样在Metric Unit区域配置,一般Mb会比较适合观察。若是有挂载多个存储设备,能够在Filesystem Filter区域指定要监控的设备

 

windows下的资源监控1---jconsole

jdk目录下面有自带的资源监控平台--jconsole.exe

双击jconsole.exe,启动监控平台,能够选择须要监控的服务。能够是本地的tomcat进程,也能够是远程的服务器。这里我选择了监控jmeter进程。

在上方的概览中,咱们能够看到堆内存,线程,类,cpu四个监控模块。时间能够自由选择。

在内存选项中,咱们能够选择分别监控新生代,老年代,eden,space这些堆内存空间。同时能够手动gc内存。

在线程中,咱们能够监控全部已加载的线程,同时一键检测线程死锁。

在类中,咱们能够直观的看到各类性能数据。包括jmeter分配的线程池大小。

 

windows下的资源监控2---jmc工具,能够监控本地和远程机器

jmc的功能相似于jconsole,不过仪表盘式的外观和色彩看起来更加漂亮。

在底部的按钮能够针对堆内存,cpu,线程等进行性能诊断

windows下的资源监控2---jvisualvm工具,能够监控本地和远程机器

 

 

jvisualvm的功能更增强大一些,除了常规的数据监控以外,还能够对线程进行dump(只能针对本地,不能对远程服务进行dump

 

jdk自带的监控工具是丰富多彩的,咱们能够根据本身的需求去选择不一样的工具。

 

内存瓶颈分析

内存资源成为系统性能的瓶颈的征兆 :

  • 很高的换页率 (high pageout rate);

  • 进程进入不活动状态 ;

  • 交换区全部磁盘的活动次数可高 ;

  • 可高的全局系统 CPU 利用率 ; 

  • 内存不够出错 (out of memory errors)

 

cpu瓶颈分析

CPU 资源成为系统性能的瓶颈的征兆 : 

  • 很慢的响应时间 (slow response time) 

  • CPU 空闲时间为零 (zero percent idle CPU) 

  • 太高的用户占用 CPU 时间 (high percent user CPU) 

  • 太高的系统占用 CPU 时间 (high percent system CPU) 

  • 长时间的有很长的运行进程队列 (large run queue size sustained over time)

相关文章
相关标签/搜索