zoukankan      html  css  js  c++  java
  • JConsole&VisualVM监控总结

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

    监控示例
    Server端(需要监控的主机)配置
    设置临时JAVA参数

    export JAVA_OPTS="
    -Dcom.sun.management.jmxremote.port=<port>
    -Dcom.sun.management.jmxremote.authenticate=false
    -Dcom.sun.management.jmxremote.ssl=false
    -Djava.rmi.server.hostname=<server-ip>"
    1
    2
    3
    4
    5
    注意:-Djava.rmi.server.hostname参数也可不添加,但要确保hostname -i得到的是本机的真实ip,而不是127.0.0.1。

    启动相应的JAVA程序

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

    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程序进行监控显得尤为重要。

    启动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
    1
    2
    3
    4
    5
    使用jconsole或jvisualvm监控(这里使用jconsole)

    创建连接

    整体查看
    在下图中可以看到整个进程进行中,内存等的占用情况。

    查看线程

    查看MBeans
    这块比较重要,通过观察下图中channel的各属性值,为flume的各项数据传输参数设置提供依据。比如若ChannelFillPercentage一直接近100%,则此时应将ChannelCapacity调大一些。

    jconsole 用户名和密码设置

    JAVA_OPTS="-server -Xms2048m -Xmx2048m -Xss512k 

    -Djava.rmi.server.hostname=172.20.30.15 

    -Dcom.sun.management.jmxremote 

    -Dcom.sun.management.jmxremote.port=9999 

    -Dcom.sun.management.jmxremote.ssl=false 

    -Dcom.sun.management.jmxremote.authenticate=true 

    -Dcom.sun.management.jmxremote.pwd.file=/usr/local/java/jdk1.7.0_79/jre/lib/management/jmxremote.password 

    -Dcom.sun.management.jmxremote.access.file=/usr/local/java/jdk1.7.0_79/jre/lib/management/jmxremote.access"

     

    亲测可用命令:

     

    java -Dfile.encoding=UTF-8

    -Djava.rmi.server.hostname=192.168.1.51

    -Dcom.sun.management.jmxremote.pwd.file=jmxremote.password

    -Dcom.sun.management.jmxremote.access.file=jmxremote.access

    -Dcom.sun.management.jmxremote.authenticate=false

    -Dcom.sun.management.jmxremote.ssl=false

    -Dcom.sun.management.jmxremote.port=7200

    -Xms1024M -Xmx1024M

    -Xbootclasspath/a:deploy -jar deploy/codex-game.jar

     

    jmxremote.password文件:

    user user

    admin admin

     

    jmxremote.access文件:

    user readonly

    admin readwrite

    create javax.management.monitor.*,javax.management.timer.*

    unregister

  • 相关阅读:
    FileWatcher
    virtual table(有180个评论)
    this 指针
    docker -ce(社区免费版)
    vue-cli
    CAP理论、BASE理论
    B+树和LSM存储引擎代表树和B-树
    CPU高速缓存
    Python&基础环境搭建
    二叉树
  • 原文地址:https://www.cnblogs.com/xingchong/p/9775243.html
Copyright © 2011-2022 走看看