概述
性能测试过程中,对服务器资源的监控是必不可少的。这里的资源又分了两块,windows和linux
linux下监控资源
访问网址http://jmeter-plugins.org/downloads/all/,下载三个文件。其中JMeterPlugins-Standard和JMeterPlugins-Extras是客户端的,ServerAgent是服务端的。
前两个是jmeter扩展插件,解压后将jar拷贝包到jmeter的lib/ext目录下,最后一个是服务器监控插件,解压到服务器上
将ServerAgent-2.2.1.zip解压后放在需要监控的服务器上,并执行
chmod 777 startAgent.sh 赋权
./startAgent.sh 启动监控
配置端口和ip,端口默认4444
服务器上可以修改默认端口--./startAgent.sh –udp-port 0 –tcp-port XXXX
如果配置正确,但是始终无法监控到服务器,需要考虑 4444 端口是否在服务器防火墙中被禁用!
运行查看结果
jmeter隐藏功能:指定进程号进行监控。需要双击空白的地方,右边会出现三个点。这边可以根据服务器的pid进程号来监控资源
数值都是代表百分比,比如默认配置下在曲线图中看到某个时间的数值是30,即代表此时总的cpu使用时间占比为30%。
两点比较有用的地方值得说明:
1:在Scope区域,可以通过Per Process选项来获取指定进程的CPU使用情况
2:在CPU Cores区域,我们可以选择监控指定的单个Core。
usedperc(默认)和freeperc两项的数值代表与总内存的百分比,其余指标项的数值都是指内存大小,选中对应项,可以看到Metric Unit区域单位配置将变为可用,通常Mb会比较适合观察。同样,也可以选择监控指定进程的数据
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)
原文:https://www.cnblogs.com/Zfc-Cjk/p/10945572.html