JConsole&VisualVM监控总结


简介

JConsole(以下写作jconsole),VisualVM(以下写作jvisualvm )
都是比较好的JVM调优工具,且都为JDK自带,可在命令行直接启动。


监控示例

Server端(需要监控的主机)配置

  1. 设置临时JAVA参数

    export JAVA_OPTS="\
    -Dcom.sun.management.jmxremote.port= \
    -Dcom.sun.management.jmxremote.authenticate=false \
    -Dcom.sun.management.jmxremote.ssl=false \
    -Djava.rmi.server.hostname="
    

    注意:-Djava.rmi.server.hostname参数也可不添加,但要确保hostname -i得到的是本机的真实ip,而不是127.0.0.1

  2. 启动相应的JAVA程序

     java-app start
    

也可以直接将JAVA配置附加到java程序启动命令
的后面,即java-app start -Dcom.sun.management.jmxremote.port= -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false -Djava.rmi.server.hostname=

Client端(监控主机)配置

在Client端启动jconsole或jvisualvm,并添加连接参数”server-ip:port”即可开始监控,这两个参数值请保持与上面的配置值一致。


适用场景

监控JAVA程序

若使用jconsole,则官方文档见Java SE Monitoring and Management Guide,其余文章见参考1-4。
若使用jvisualvm,则见参考博文5-8。

监控TomCat

若使用jconsole,请见参考文章3,9,10。使用jvisualvm,请见参考博文11。

监控Flume

Flume传输数据时,需要配置合理的Java参数值和数据传输参数值,否则很容易出现错误,见Flume使用笔记 。此时对Flume程序进行监控显得尤为重要。

  1. 启动flume程序并开启监控

     bin/flume-ng agent  -n flumedn -f collect_data_flume.conf \
     -Dcom.sun.management.jmxremote.pt=8999 \
     -Dcom.sun.management.jmxremote.authenticate=false  \
     -Dcom.sun.management.jmxremote.ssl=false \
     -Djava.rmi.server.hostname=datanode5
    
  2. 使用jconsole或jvisualvm监控(这里使用jconsole)

    • 创建连接
      JConsole&VisualVM监控总结_第1张图片
    • 整体查看
      在下图中可以看到整个进程进行中,内存等的占用情况。
      JConsole&VisualVM监控总结_第2张图片
    • 查看线程
      JConsole&VisualVM监控总结_第3张图片
    • 查看MBeans
      这块比较重要,通过观察下图中channel的各属性值,为flume的各项数据传输参数设置提供依据。比如若ChannelFillPercentage一直接近100%,则此时应将ChannelCapacity调大一些。
      JConsole&VisualVM监控总结_第4张图片

监控Hadoop集群

见参考博文12。


更多

见Java监控工具介绍,VisualVm ,JProfiler,Perfino,Yourkit,Perf4J,JProbe,Java微基准测试,基本上常见的Java监控工具都囊括了。


参考文章

【1】Jconsole监控本地及远程Java进程
【2】JConsole 使用总结
【3】jconsole工具使用
【4】如何利用 JConsole观察分析Java程序的运行,进行排错调优
【5】如何使用JVisualVM进行性能分析
【6】visualvm的安装笔记
【7】使用 VisualVM 进行性能分析及调优
【8】JVM学习总结五(番外)——VisualVM
【9】JConsole监控远程Tomcat服务器
【10】监视和管理控制台 jconsole 的使用
【11】jvisualvm远程监控Tomcat
【12】Hadoop2.0:Jvisualvm监控MapReduce和spark作业

你可能感兴趣的:(Flume)