windows visualVM,yourkit远程监控linu

作者: 三个米连 | 来源:发表于2017-01-05 16:07 被阅读110次

    工作需要,发现某个linux的进程多线程的性能非常差,于是乎想通过jvm的监控来看一下thread dump的信息。

    java visualvm

    首先想到的是这个jdk自带的软件,在JAVA_HOME/bin下面就有,通过配置linux JAVA_OPT既可使用,

    1. 进入想要监控的linux机器,输入

    export JAVA_OPTS='-Dcom.sun.management.jmxremote.port=1099 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false -Djava.rmi.server.hostname=xx.xx.xx.xx'

    hostname那里要输外网的ip地址,如果发现hostname -i是内网的127.0.0.1就要改一下/etc/host了不然会连不上

    加完JAVA_OPTS以后再启动对应监控的java程序应该就可以看到1099端口打开了

    netstat -ntl | grep 1099 看到对应的端口已经打开,就可以连了

    ps. 确保所有的防火墙都已经关闭了,这个不同版本linux的关闭方法不一样

    大概有ufw disable xxxx, systemctl stop firewall.xxxxx , iptables

    yourkit

    java visualVM使用起来很方便,装上一个plugin 就可以直接看对应某一个线程的执行情况,而不用做thread dump,相信我,如果线程很多,每一次thread dump整个人都不太好

    visualVM大法不错也很方便,但是在samples的面板里面只能看出哪些方法的使用时间比较多,却不知道方法之间的层级调用结构,这时候yourkit的强大就出来了,它可以方便的看到方法的调用结构,然后也可以和intellj或者eclipse结合直接反编译出代码来读

    对于定位问题非常有帮助。

    yourkit的话如果要远程监控要在windows,linux上都装上一个,版本统一

    增加 -agentpath:VM 选项到Java命令行启动参数(依旧是加到JAVA_OPTS).  yourkit的默认端口是10001

    Linux x86, 32-bit Java

    -agentpath:/bin/linux-x86-32/libyjpagent.so

    Linux x86, 64-bit Java

    -agentpath:/bin/linux-x86-64/libyjpagent.so

    增加完之后,在启动对应要监控的JAVA程序就可以了

    回到WINDOWS上添加远程机器就能够连上了,yourkit会提示安装反编译查看的plugin的

    现在就可以定位具体的性能问题啦,撒花!

    未来会将定位问题的分析过程。

    相关文章

      网友评论

        本文标题:windows visualVM,yourkit远程监控linu

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