我们已经看到使用Collectd监控CPU /内存利用率(本文)。但它没有提供所有信息来确定性能问题的瓶颈。在本文中,我们将使用Collectd Java插件来使用其JMX技术来监视和管理Java虚拟机(JVM)。

目标:

使用Java的JMX技术监视和管理Java虚拟机(JVM)。

建筑:

我们的高级架构如下所示 - 我们将监控所有应用服务器,JMeter服务器和JMeter-master的JVM。

JMX(Java托管扩展):

JMX是在Java 5.0发行版中引入的,用于在运行时管理/监视资源。使用JMX,我们将能够监视内存使用情况,垃圾收集,加载的类,线程数等随着时间的推移。这是性能工程中更有用的信息。更多信息在这里

如上图所示,使用JMX连接器,JConsole / Collectd等客户端与MBean服务器通信,以获取我们感兴趣的应用程序的度量标准。

JConsole的:

JConsole是一个用于监视JVM的GUI工具。它附带Java JDK。让我们看看它如何帮助我们监控JMeter。[我假设你安装了JDK]

  • 启动JMeter
  • 打开一个简单的测试计划/创建一个。
  • 转到Java JDK Home / bin文件夹
  • 启动JConsole.exe

  • 它将显示正在运行的Java应用程序列表。选择ApacheJMeter.jar并连接。如果出现此对话窗口,请单击“不安全连接”

  • 运行JMeter测试。

  • JConsole显示内存使用情况,线程数[ 不要与JMeter的线程数混淆 ],加载类等
  • 单个选项卡提供更多信息,如GC。

监控远程过程:

  • 当我们在上面监视本地进程(ApacheJMeter.jar)时,JConsole也可用于监视远程进程(远程进程可能是您的tomcat服务器/ JMeter-server)
  • 应为远程进程设置某些属性,以便client / JConsole可以与JMX API通信以获取信息。在启动java进程时,传递以下属性。

-Dcom.sun.management.jmxremote
-Dcom.sun.management.jmxremote.port=6969
-Dcom.sun.management.jmxremote.rmi.port=6969
-Dcom.sun.management.jmxremote.ssl=false
-Dcom.sun.management.jmxremote.authenticate=false

  • 如果您正在运行docker容器,请确保还使用了以下属性。

-Djava.rmi.server.hostname=${HOST_IP}

  • 要收集jmeter-server jmx指标,我在下面设置环境变量并启动jmeter-server.sh

export JVM_ARGS="-Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=6969 -Dcom.sun.management.jmxremote.rmi.port=6969 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false"

  • 对于Tomcat:

CATALINA_OPTS="-Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=6969 -Dcom.sun.management.jmxremote.rmi.port=6969 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false"

  • 只需将上述参数传递给java进程即可启用JMX监控。
  • 现在,JConsole可以使用以下服务URL连接到远程JMX。

service:jmx:rmi:///jndi/rmi://hostname:6969/jmxrmi

Collectd Java插件:

JConsole是一个很好的工具。但它不保留历史数据。我们已经使用Collectd来监控我们的jmeter-servers和app服务器的CPU和内存利用率。我们可以使用Collectd的Java和JMX插件将JMX指标收集到InfluxDB中。

请先阅读本文关于collectd的用法。

我将在collectd配置文件中添加以下部分。

重启collectd服务。等几分钟来收集一些指标。

获得此数据后,最后一步将在Grafana中创建一个仪表板来创建图形。

摘要:

使用Collectd插件,以及CPU和内存利用率,我们还可以将JMX指标收集到InfluxDB中。使用Grafana,我们可以可视化,性能测试结果(最小值,最大值,平均响应时间,吞吐量等),JMX度量(堆内存使用,加载的类计数,线程数,GC)和其他指标,如所有的CPU和内存利用率JMeter服务器,App服务器。

使用Collectd + InfluxDB + Grafana进行JMX监控的更多相关文章

  1. collectd+influxDB+Grafana搭建性能监控平台

    网上查看了很多关于环境搭建的文章,都比较久远了很多安装包源都不可用了,今天收集了很多资料组合尝试使用新版本来搭建,故在此记录. 采集数据(collectd)-> 存储数据(influxdb) - ...

  2. Telegraf+InfluxDB+Grafana搭建服务器监控平台

    Telegraf+InfluxDB+Grafana搭建服务器监控平台 tags:网站 个人网站:https://wanghualong.cn/ 效果展示 本站服务器状态监控:https://statu ...

  3. [转帖] 基于telegraf, influxdb, grafana 建立 esxi 监控

    [系统集成] 基于telegraf, influxdb, grafana 建立 esxi 监控 https://www.cnblogs.com/hahp/p/7677420.html 之前在 nagi ...

  4. Docker系列——InfluxDB+Grafana+Jmeter性能监控平台搭建(一)

    在做性能测试的时候,重点关注点是各项性能指标,用Jmeter工具,查看指标数据,就是借助于聚合报告,但查看时也并不方便.那如何能更直观的查看各项数据呢?可以通过InfluxDB+Grafana+Jme ...

  5. Docker系列——InfluxDB+Grafana+Jmeter性能监控平台搭建(三)

    在之前系列博文中,已经介绍完了数据采集和数据存储,那数据如何展示呢?所以今天就专门来讲下数据如何展示的问题. 以前博文参考: Docker系列--InfluxDB+Grafana+Jmeter性能监控 ...

  6. Collectd+InfluxDB+Grafana监控系统搭建

    环境配置 节点 配置 类型 操作系统 Sched 2G 2CPU 50GB ens3=>192.168.200.11 KVM虚拟机 CentOS 7 Nova 4G 2CPU 50GB ens3 ...

  7. [系统集成] 基于telegraf, influxdb, grafana 建立 esxi 监控

    之前在 nagios 上建立了 esxi 监控,指标少.配置麻烦.视觉效果差.最近我把 esxi 监控迁移到了 influxdb+grafana 平台上,无论是监控指标.可操作性还是视觉效果都有了很大 ...

  8. InfluxDB+Grafana大数据监控系列之基础环境部署(一)

    一.单节点环境部署 机器节点信息及 InfluxDB.Grafana 版本选择: 节点 Linux版本 部署服务 10.223.1.198 Centos 6.8 InfluxDB 1.7.7 10.2 ...

  9. 性能测试监控:Jmeter+Collectd+Influxdb+Grafana

    系统性能指标图示例: 采集数据(collectd)-> 存储数据(influxdb) -> 显示数据(grafana) InfluxDB 是 Go 语言开发的一个开源分布式时序数据库,非常 ...

随机推荐

  1. CI中控制器名不能和本个 控制器中的方法名相同

    控制器名称:application/controllers/tang.php 控制器中方法名称:application/controllers/role.php  中有方法 public  funct ...

  2. 微信非全屏播放设置(仅Iphone)

    由于微信X5内核强制视频全屏,用X5自带内核播放,一般内嵌视频打开播放就会被全屏. ihpone里面可以通过设置 x-webkit-airplay="true" webkit-pl ...

  3. 幻想乡三连C:狂飙突进的幻想乡

    题解: 不难发现,对于每一条从$S$到$T$的路径,设其$x.y$的和为$S_x.S_y$,其对答案的贡献是$a\cdot S_x+(1-a)\cdot S_y$,这是一个关于$a$的一次函数.而所有 ...

  4. vmware的双网卡以及Pro的注册码

    DC/OS的master需要能够上外网而且能够和本地内网设备交互,于是打算在虚拟机上面做测试,于是调研了一下虚拟机的双网卡配置.   最推荐的方式是使用vmware的station,而不是player ...

  5. bzoj 2178 圆的面积并 —— 辛普森积分

    题目:https://www.lydsy.com/JudgeOnline/problem.php?id=2178 先看到这篇博客:https://www.cnblogs.com/heisenberg- ...

  6. 【转】 Pro Android学习笔记(七七):服务(2):Local Service

    目录(?)[-] Local service代码 调用Local ServiceLocal Service client代码 AndroidManifestxml定义Serviceacitivty的l ...

  7. java core

    1:  Java7 以后的 NIO. 2:  泛型要掌握,这里重点强调一点,泛型类之间不存在继承关系,所有的泛型对象在编译后都会去泛型化,都是同一个 class 对象,例如 ArrayList< ...

  8. Spring 学习十四 Spring security安全

    Spring security: 我用过的安全机制:   oauth2, filter,  secured方法保护 9.2  保护web请求: 9.2.1  代理Servlet过滤器: Delegat ...

  9. arm交叉编译 扫盲贴

    ARM交叉编译工具链 为什么要用交叉编译器? 交叉编译通俗地讲就是在一种平台上编译出能运行在体系结构不同的另一种平台上的程序, 比如在PC平台(X86 CPU)上编译出能运行在以ARM为内核的CPU平 ...

  10. Selenium VS Webdriver

    Selenium 是 ThroughtWorks 一个强大的基于浏览器的开源自动化测试工具,它通常用来编写 Web 应用的自动化测试.随着 Selenium 团队发布 Selenium 2(又名 We ...