windows visualVM,yourkit远程监控linux服务器性能

工作需要,发现某个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远程监控linux服务器性能)