美文网首页Java
jvm性能优化之jvm监控系统

jvm性能优化之jvm监控系统

作者: Plutarch | 来源:发表于2019-03-16 18:44 被阅读23次

jmxtrans

介绍

jmxtrans是一个jvm管理工具,它允许您连接到任意数量的Java虚拟机(JVM)并查询它们的属性,而无需编写单行Java代码。这些属性通过Java Management ExtensionsJMX)从JVM导出。大多数Java应用程序都通过此协议提供了统计信息,并且可以将其添加到任何代码库中而无需花费太多精力。如果将SpringFramework用于代码,就可以像在Java类文件中添加几个注释一样简单。 查询语言基于易于编写的JSON格式。这允许非程序员访问JMX而无需知道如何编写Java,实现了对代码的零侵入。查询的结果由名为OutputWritersJava类处理。开箱即用,jmxtrans支持多个输出编写器,可通过配置直接写入到对应的数据库。

1、 Engine Mode

使用jmxtrans有两种主要模式。第一种是使用分发中包含的JmxTransformer引擎。该引擎将读取.json文件的目录,然后创建“作业”以在类似cron的计划上执行。
每个作业都映射到您要查询jmx属性的服务器。因此,您可以通过在Server对象上设置cronExpression字段来为每个服务器设置复杂的查询计划(默认 为每分钟)。 对于给定的json文件,可以在其中定义无限数量的服务器。服务器是您要从中收集统计信息的JVM,并由主机名,端口,用户名和密码定义。 在每个服务器中,可以对其执行无限数量的JMX查询。针对服务器执行的每个查询都可以使用任意数量的OutputWriters输出其结果。
JmxTransformer引擎是完全多线程的。您指定要为应用程序的每个部分启动的最大线程数。默认情况下,最多同时查询10台服务器。对于服务器,每个查询也可以有多个线程。因此,您可以指定要10个线程来处理50个服务器。您的每台服务器可能已定义了10个查询。因此,您可以将numQueryThreads设置为2,以便同时对服务器执行两个查询。JmxTransformer有两个方面。输入是与JVM中运行的JMX服务器的连接。输出是OutputWriters。必要时,双方都使用连接对象池来维护与输入和输出的套接字连接。

2、API模式

jmxtrans的第二种模式是充当API来构建自己的应用程序,以便从JMX中提取数据并将其写出来。引擎是在这个API之上编写的。engine是我如何使用这个项目,所以你可以编写自己的engine完全支持。 api的核心在JmxUtils类中实现为大多数静态方法。也可以使用Java'ish语言(如Jython,Scala和Groovy)来编写jmxtrans脚本以执行您想要的任何操作。

架构

jmxtrans+influxdb+grafana

安装(其它安装方式详见官网)

docker run -p 8086:8086 -p 8083:8083 -e INFLUXDB_ADMIN_ENABLED=true influxdb:1.2.4

docker run -d -v /opt/jmxtrans/json-files:/var/lib/jmxtrans -p 9999:9999 --env PROXY_HOST=10.10.0.131 docker.xsy.io/base/jmxtrans:1.0

The arguments as environment variable are :

· SECONDS_BETWEEN_RUNS
· HEAP_SIZE
· PERM_SIZE
· MAX_PERM_SIZE
· CONTINUE_ON_ERROR
· JMXTRANS_OPTS
· JAVA_OPTS

To run jmxtrans:
· ./jmxtrans.sh start [optional path to one json file]

To stop jmxtrans:
· ./jmxtrans.sh stop

Options you may want to configure:
· JSON_DIR - Location of your .json files. Defaults to '.'
· LOG_DIR - Location of where the log files get written. Defaults to '.'
· SECONDS_BETWEEN_RUNS - How often jobs run. Defaults to 60.

配置

注意: 配置之前请确保监控的java 服务已经打开jmx

-Dcom.sun.management.jmxremote.port=1105
-Dcom.sun.management.jmxremote.host=10.10.0.130
-Dcom.sun.management.jmxremote.authenticate=false
-Dcom.sun.management.jmxremote.ssl=false

· 配置template文件到上面容器挂载目录下:

更多配置参数可以通过jconsole 连接查看mean。

{
  "servers" : [ {
    "port" : "1105",    # jmx端口 
    "host" : "192.168.0.11",  # jmx IP
    "username" : "xxx", # jmx 用户名 
    "password" : "xxx", # jmx 密码 
    "queries" : [ {
      "outputWriters" : [ {
        "@class" : "com.googlecode.jmxtrans.model.output.InfluxDbWriterFactory",
        "url" : "[http://10.10.0.130:8086/](http://10.10.0.130:8086/)", 
        "username" : "root",
        "password" : "root",
        "database" : "jmxtrans",
        "tags"     : {"application" : "manager-service"}
      } ],
      "obj" : "java.lang:type=OperatingSystem",
      "attr" : [ "SystemLoadAverage", "AvailableProcessors", "TotalPhysicalMemorySize", 
       "FreePhysicalMemorySize", "TotalSwapSpaceSize", "FreeSwapSpaceSize", 
       "OpenFileDescriptorCount", "MaxFileDescriptorCount","SystemCpuLoad" ],
      "resultAlias":"SystemUsage"
    },
...
]
  } ]
}

· 查看influxdb数据


image.png

· 配置grafana dashboard


image.png

参考资料

jmxtrans https://github.com/jmxtrans/jmxtrans

influxdb https://jasper-zhang1.gitbooks.io/influxdb

相关文章

  • jvm性能优化之jvm监控系统

    jmxtrans 介绍 jmxtrans是一个jvm管理工具,它允许您连接到任意数量的Java虚拟机(JVM)并查...

  • jvm 相关阅读

    相关阅读 JVM性能优化1-JVM简介 JVM性能优化2-编译器 JVM性能优化3-垃圾回收 JVM性能优化4-C...

  • JVM性能调优

    JVM性能调优 JVM性能监控工具介绍

  • JVM性能监控工具使用说明

    JVM性能监控工具使用说明 命令JPS 命令JSTAT JMAP JSTACK PSTREE TOP JVM中系统变量

  • JVM调优

    JVM(Java虚拟机)优化大全和案例实战 JVM 优化经验总结 JVM 数据存储介绍及性能优化 JVM诊断...

  • 深入理解JVM - 系统性能优化

    系统性能优化并不是一上来就是JVM优化,相反JVM优化几乎是最后的手段了。影响一个系统的性能的因素非常多,如图: ...

  • 几种线上问题排查常用的java命令

    JVM性能调优监控工具之jps、jstack、jmap、jhat、jstat jps 查看所有的jvm进程,包括进...

  • 后端文章精选- 收藏集 - 掘金

    【玩转 JVM 性能优化】Java 的伸缩性 - 后端 - 掘金感谢朋友【吴杰】投递本文。 JVM性能优化系列文章...

  • Java调优工具介绍

    Java监控工具 jcmd : jvm 性能调优工具之 jcmd示例: jconsole:图形化监控工具示例:在命...

  • 服务器JVM等查看

    常用 JVM性能调优监控工具JDK内置工具使用JAVA线程dump分析JVM致命错误日志1 . CPU的监控 cs...

网友评论

    本文标题:jvm性能优化之jvm监控系统

    本文链接:https://www.haomeiwen.com/subject/kgpsmqtx.html