概述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进程号来监控资源
数值都是表明百分比,好比默认配置下在曲线图中看到某个时间的数值是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)