zoukankan      html  css  js  c++  java
  • 9.jmeter监控技术实战

    jmeter监控技术

    性能测试中监控的意义

    性能测试的目的:通过技术手段,提前发现项目性能问题,优化并解决

    • 性能分析:
      • 1、依据什么分析
      • 2、怎么分析

    项目中的监控方案

    收集器方式

    • 实时收集且传输

    • 离线传输
      top指令---实时的,没有历史记录,需要盯着看,不直观
      图 1

    • 监控原理:
      图 2

      • 间谍:收集器,需要服务器权限,要间谍跑起来,收集信息
      • 情报员:接收器
    • 方案一:serverAgent监控

      • 将serveragent-xxxx.jar上传到被测服务器解压,进入目录
      • Windows:双击serverAgent.bat启动
      • Linux:执行serverAgent.sh启动
      • 默认使用4444端口,出现如下情况即服务端启动成功

    图 4

    图 3
    监控效果:
    图 5

    Linux启动:
    图 6

    chmod 777 startAgent.sh
    图 7
    加载一个文件来存储结果,如果加载报错,直接点确定
    图 9

    选择覆盖
    图 10

    点击空白处,可以监控具体的进程
    图 8

    图 11

    • 方案二:nmon监控
      • 离线方案:通过nmon收集器收集数据--等场景运行完成之后,使用分析器,离线分析
      • 实时方案:grafana+nmon_exporter--实时---不建议
      • 1、解压并获取对应平台的nmon工具文件
        • tar -zxf nmon16e_mpginc.tar.gz
        • mv nmon_x86_64_centos7 nmon----重命名
      • 2、本机使用excel分析工具NmonAnalyser

    图 12

    启动nmon
    图 13
    空白处输入cmdn
    图 14

        * 1.11生成nmon报告
          * 1、nmon -s20 -c3 -f -m /usr/local/nmon/nmon_output
          * 参数解释
            * -s20 每20秒采集一次数据
            * -c3 采集3次,即为采集一分钟的数据
            * -f 生成的报告文件名中包含文件创建的时间 format
            * -m 生成的报告文件的存放目录
          * 生成的文件名如下:xxx_210620_0118.nmon
            xxxx 是机器的主机名
    

    图 15
    把采集到的文件下载到windows系统
    * 在windows打开分析工具
    * 然后导入采集到的文件
    * 自动生成图形文件,保存到指定的路径

    图 16

    图 17

    • 方案三:grafana监控平台
      • 方案简介:
        • 公司大部分服务器,项目都在Linux系统下部署,我们需要了解Linux环境下搭建可视化监控平台
      • 需要具备什么样的技能:
        • 1、常用的Linux指令技能
        • 2、监控平台的工作原理
          • 数据采集--node_exporter
          • 数据存储--Prometheus
          • 数据展示--grafana

    图 18

    优秀监控方案所具备的特性

    • 1、准确性高
    • 2、时效性好
    • 3、可视化高
    • 4、历史数据
    • 5、警告通知---工具联通叮铃,发邮件,发短信--告警触发

    windows资源监控

    • 方案一:jconsole
      • jdk的bin目录下面有自带的资源监控平台--jconsole.exe

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

    • 图 19
      在上方的概览中,我们可以看到堆内存,线程,类,cpu四个监控模块。时间可以自由选择。
      在VM概要中,我们可以直观的看到各种性能数据。包括jmeter分配的线程池大小。

    图 20

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

    图 22
    在线程中,我们可以监控所有已加载的线程,同时一键检测线程死锁。
    图 23

    • 方案二:jmc工具
    • 可以监控本地和远程机器

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

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

    • 方案三jvisualvm工具
    • 可以监控本地和远程服务

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

    jdk自带的监控工具是丰富多彩的,我们可以根据自己的需求去选择不同的工具。

  • 相关阅读:
    python定时任务:apscheduler的使用(还有一个celery~)
    Python定时任务-schedule vs. Celery vs. APScheduler
    结合Django+celery二次开发定时周期任务
    The Django Book 2.0--中文版
    第十二章: 部署Django
    Django扩展自定义manage命令
    使用django-extension扩展django的manage――runscript命令
    Django | 执行项目下指定的脚本
    C语言宏定义技巧——多次包括头文件内容不同
    《Java并发编程实战》第十章 避免活跃性危急 读书笔记
  • 原文地址:https://www.cnblogs.com/xiehuangzhijia/p/14966087.html
Copyright © 2011-2022 走看看