zoukankan      html  css  js  c++  java
  • jmeter(五十一)_性能测试中的服务器资源监控与分析

    概述

    性能测试过程中,对服务器资源的监控是必不可少的。这里的资源又分了两块,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进程号来监控资源

    监控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)

  • 相关阅读:
    Python中的浅复制、深复制
    Python
    CSS中
    Fluent_Python_Part3函数即对象,05-1class-func,一等函数,函数即对象
    Python
    本地简单HTTP服务器
    Fluent_Python_Part2数据结构,04-text-byte,文本和字节序列
    Fluent_Python_Part2数据结构,03-dict-set,字典和集合
    Fluent_Python_Part2数据结构,02-array-seq,序列类型
    Codeforces 246E Blood Cousins Return(树上启发式合并)
  • 原文地址:https://www.cnblogs.com/Zfc-Cjk/p/10945572.html
Copyright © 2011-2022 走看看