Chinaunix首页 | 论坛 | 博客
  • 博客访问: 622771
  • 博文数量: 142
  • 博客积分: 116
  • 博客等级: 入伍新兵
  • 技术积分: 1445
  • 用 户 组: 普通用户
  • 注册时间: 2010-09-28 08:37
文章分类

全部博文(142)

文章存档

2017年(7)

2016年(57)

2015年(48)

2014年(30)

我的朋友

分类: 系统运维

2016-02-15 12:50:57

jdk(或openjdk-dev)中有一些工具,可以监控JVM状态。

VisualVM:
   sun jdk自带工具。$JAVA_HOME\bin\jvisualvm.exe

jconsole:
   sun jdk自带工具。$JAVA_HOME\bin\jconsole.exe

java mission control:
   sun jdk自带工具。$JAVA_HOME\bin\jmc.exe

jps:查看jvm进程。

jhat:读取dump文件,生成html并开启http服务。html中还可以使用Object Query Language (OQL)进行查询。

jinfo:显示VM信息。

jmap:查看内存中对象的情况。常用参数  -heap  -histo  -dump

jstat:查看内存使用情况。

jstack:打印堆栈信息。可以看到JVM中线程的执行堆栈。加-l还可以看到锁的信息。

jProfiler:商业软件,监控项很全面,能够看到线程栈中各方法调用所花时间的百分比,还能看到jdbc调用所发的sql语句。
              对远程jvm监控时需要安装代理。

如果需要监控远程server的JVM,需要打开server的jmx。(和防火墙)
为tomcat配置jmx,在startup脚本中设置:
  1. JAVA_OPTS="$JAVA_OPTS -Dcom.sun.management.jmxremote.port=1099 \
  2. -Dcom.sun.management.jmxremote.ssl=false \
  3. -Dcom.sun.management.jmxremote.authenticate=false \
  4. -Djava.rmi.server.hostname=192.168.0.1"
(不建议写在catalina脚本中,因为shutdown脚本也会调用catalina。)

另外,jmx端口可以在tomcat的server.xml中配置,这样就不需要-Dcom.sun.management.jmxremote.port参数了。
需要在lib下放置catalina-jmx-remote.jar

className="org.apache.catalina.mbeans.JmxRemoteLifecycleListener"
rmiRegistryPortPlatform="1111"
rmiServerPortPlatform="1112"

另,java metrics(是一个用于度量的一个JAVA的类库)待学习。
阅读(2041) | 评论(0) | 转发(0) |
0

上一篇:debian 安装PXE Server

下一篇:grub2 引导freebsd

给主人留下些什么吧!~~