JVM故障诊断和性能调优(Visual VM)

监控内存和CPU   VMSTAT 

 

监控IO使用    IOSTAT

 

多功能诊断器  PIDSTAT

--使用jstack 导出相关的线程信息

 

Java工具

JPS -m  -l 

 

Jstat 

是一个可以用于观察Java应用程序运行时相关信息的工具。

 

Jinfo

Jinfo可以用来查看正在运行的Java应用程序的扩展参数

甚至支持在运行时,修改部分参数。

 

Jmap

命令Jmap是一个多功能的命令,它可以生成Java程序的堆Dump文件,也可以

查看堆内对象实例的统计信息、查看ClassLoader的信息以及finalizer

 

Jhat

使用Jhat工具可以用于分析Java应用程序的堆快照内容。

Jstack

可以用于导出Java应用程序的线程堆栈。

 

------------------------------------------------------------------

Visual VM 

是一个功能强大的多合一故障诊断和性能监控的可视化工具

可以替代:jstat/jmap/jhat/jstack

 

采用JMX连接远程

实施步骤1:

配置 tomcat catalina.bat 的参数

set JMX_REMOTE_CONFIG=-Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=8999 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false  

set CATALINA_OPTS=%CATALINA_OPTS% %JMX_REMOTE_CONFIG% 

 

注:1. -Dcom.sun.management.jmxremote.port :这个是配置远程 connection 的端口号的,要确定这个端口没有被占用

2. -Dcom.sun.management.jmxremote.ssl=false 指定了 JMX 是否启用 ssl

3. -Dcom.sun.management.jmxremote.authenticate=false   指定了JMX 是否启用鉴权(需要用户名,密码鉴权)

   2,3两个是固定配置,是 JMX 的远程服务权限的

4. -Djava.rmi.server.hostname :这个是配置 server  IP 

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

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

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

-Djava.rmi.server.hostname=10.27.39.30

 

 

 

WAS上配置jmx监控:

1、登录was控制台https://10.4.119.18:9043/ibm/console/,找到自己的应用程序服务器---java和进程管理---进程定义--JAVA虚拟机,然后配置 通用JVM 参数 :

 

 

加入以下jvm参数:-Djavax.management.builder.initial= -Dcom.sun.management.jmxremote

注意:等号后面一定要保留空格,否则会报错。

 

 

2、修改/opt/IBM/WebSphere/AppServer/java/jre/lib/management/management.properties文件,在最后加入

  com.sun.management.jmxremote.port=8999

  com.sun.management.jmxremote.authenticate=false  

  com.sun.management.jmxremote.ssl=false

注意:先执行netstat -ano | grep 8999,查看这个端口是否被使用。另外注意防火墙对8999端口的配置,要放开,否则远程机器可能连接不上.如果这个端口被占用,则换成6001

 

 

3、设置jconsole远程登录的用户名和密码

在/opt/IBM/WebSphere/AppServer/java/jre/lib/management下有个jmxremote.password.template文件,在最后面加入你要设置的用户名和密码

root nneihnyts (用户名、密码)

以上设置完成后,重启server让配置生效

 

 

 

 

实施步骤2;

Visual VM  的插件使用

 

 

实施步骤3;

性能配置参数,如果改善tomcat 

 

 

实施步骤4;

如何具体的调优Java?

1)压测寻找系统瓶颈。

2)压测观察线程状态,堆的消耗,GC情况,CPU消耗。

3)压测过程性能分析CPU资源和内存资源消耗非常大的程序方法。

 

 

猜你喜欢

转载自blog.csdn.net/Cavalier520520/article/details/82949084
vm