淘宝商城(天猫)高级技术专家.3年研发+3年性能测试调优/系统测试+4年团队管理与测试架构、研发系统实践. 新舞台新气象, 深化测试基础架构及研发架构,希望能在某个技术领域成为真正的技术大牛。欢迎荐才http://bbs.51testing.com/viewthread.php?tid=120496&extra=&page=1 .邮件: jianzhao.liangjz@alibaba-inc.com,MSN:liangjianzhao@163.com.微博:http://t.sina.com.cn/1674816524

可与jprofiler/yourkit媲美的java诊断工具Visualvm

上一篇 / 下一篇  2010-04-21 21:47:35 / 个人分类:java性能监控与调优

http://zorufa876.javaeye.com/blog/625649

 

一度我曾以为在java profile领域,很难有工具能超越jprofileryourkit

相比较jprofiler/ youkit优势:

1)     开源免费

2)     性能开销比jprofiler小很多.kylin性能优化项目中,jprofiler性能损耗大,而visualvm基本不受影响。

3)     被监控端无需额外安装agent

 劣势:

       没有jprofiler那样直观地树状展现方法调用栈。

 

 由于visualvm远程监控比本地监控少很多功能,所以visualvm建议安装在linux服务器端。

Visualvm要求在jdk1.6_07上。

1.1.1   下载visualvm

      不用jdk自带的,因为jdk自带的滞后。从https://visualvm.dev.java.net/download.html下载。

1.1.2   在被监控服务器上安装visualvm

      先部署好java 6以上环境。

      大部分应用都在linux上,所以visualvm安装在linux目录。

 

1.1.3   Windows机器上安装xming,输出linux图形化界面

主要是将linux display定向到windows xming server上。Xming使用请参考http://www.51testing.com/?uid-13997-action-viewspace-itemid-99183

 

 

 

 

linux shell

 export DISPLAY=windows ip:0

./visualvm &

如:

 

1.1.4   安装插件

Tools->plugin

 

 

1.1.5   设置java允许jmx访问

 少这个步骤,则cpu sample会无数据。

 可以设置java jmx选项为无验证。

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

 

  也可以:

[admin@QA-145-1 ~]$ ps -ef|grep java

admin   32289 32281 99 14:06 pts/7   00:09:21 /usr/alibaba/java/bin/java -Dprogram.name=run.sh -server -Xms2g -Xmx2g -XX:NewSize=256m -XX:MaxNewSize=256m -XX:PermSize=128m -XX:MaxPermSize=128m -XX:+UseCompressedOops -XX:+DoEscapeAnalysis -XX:+AggressiveOpts -Djava.awt.headless=true -Djava.net.preferIPv4Stack=true -Djboss.server.home.dir=/home/admin/kylin/deploy/jboss_server -Djboss.server.home.url=file:/home/admin/kylin/deploy/jboss_server -Djavax.xml.parsers.SAXParserFactory=org.apache.xerces.jaxp.SAXParserFactoryImpl -Dorg.apache.xerces.xni.parser.XMLParserConfiguration=org.apache.xerces.parsers.XML11Configuration-Dcom.sun.management.config.file=/home/admin/kylin/deploy/conf/jmx/jmx_monitor_management.properties-Dapplication.codeset=GBK -Ddatabase.codeset=ISO-8859-1 -Ddatabase.logging=false -Djava.endorsed.dirs=/usr/alibaba/jboss/lib/endorsed -classpath /usr/alibaba/jboss/bin/run.jar:/usr/alibaba/java/lib/tools.jar org.jboss.Main

 

[admin@QA-145-1 ~]$ cat /home/admin/kylin/deploy/conf/jmx/jmx_monitor_management.properties |grep -v '#'

com.sun.management.jmxremote.port=2009

com.sun.management.jmxremote.ssl=false

com.sun.management.jmxremote.authenticate=true

com.sun.management.jmxremote.password.file=/home/admin/kylin/deploy/conf/jmx/jmx_monitor_users.properties

com.sun.management.jmxremote.access.file=/home/admin/kylin/deploy/conf/jmx/jmx_monitor_roles.properties

[admin@QA-145-1 ~]$ cat /home/admin/kylin/deploy/conf/jmx/jmx_monitor_users.properties |grep -v '#'

monitor monitor

control control1

 

[admin@QA-145-1 ~]$ cat /home/admin/kylin/deploy/conf/jmx/jmx_monitor_roles.properties |grep -v '#'

monitor  readonly

control  readwrite

 

1.1.6   采样cpu或者memory对象

点击samplecpu sample检查哪些方法耗时多。

 

 

Memory sample:检查哪些类占内存多

 

这里点击settings设置过滤规则。

 

1.1.7   安装jconsole plugin

点击'Add JAR/Folder'按钮,

      添加JDK_HOME/demo/management/JTop/JTop.jar

 

参考:

http://zzxanadu.javaeye.com/blog/600183

 

1.1.8   安装eclipse插件

 

https://visualvm.dev.java.net/eclipse-launcher.html

 

下载解压到eclipse安装目录。

 

 

运行应用程序,弹出的launcher选择visualvm,将激活visualvm.


TAG: 性能 java Java visualvm profile

专注于性能测试 引用 删除 witcher2002   /   2010-05-12 11:34:40
梁大师,你好~我在linux上部署了Visualvm,也可以显示内容到Windows上。但是显示的内容没有像本地那么丰富。是不是没升级插件的原因?我的linux是测试机,不能上网,怎么升级呢?
专注于性能测试 引用 删除 witcher2002   /   2010-05-12 11:33:25
5
 

评分:0

我来说两句

Open Toolbar