天天看点

java性能检测(JConsole和jps)

一、JConsole

JConsole是java自带的图形化性能检测工具。可以查看java运行情况,如监控堆信息,永久区使用情况、类加载情况等。

JConsole从jdk5开始引。 

需要远程连接,则在远程上为:

-Djava.rmi.server.hostname=127.0.0.1

-Dcom.sun.management.jmxremote

-Dcom.sun.management.jmxremote.port=8888   //用于指定通过JMX管理该进程的端口号

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

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

其中 JMX为  JMX(Java Management Extensions,即Java管理扩展)  ,为java管理扩展。

linux下修改 catalina.sh实例:

# ----- Execute The Requested Command -----------------------------------------下面

CATALINA_OPTS="$CATALINA_OPTS -Djava.rmi.server.hostname=ip   -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.port=8888 -Dcom.sun.management.jmxremote.rmi.port=8888"

例子:以本地为远程:

tomcat下catalina.bat添加为:

setlocal

set  "JAVA_OPTS=-server -Xms512m -Xmx512m -XX:NewSize=256m -XX:MaxNewSize=256m -XX:PermSize=512m -XX:MaxPermSize=512m -XX:+DisableExplicitGC  -Djava.rmi.server.hostname=127.0.0.1  -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=8888 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false"

在jconsole中配置为:UI界面在远程连接上:

127.0.0.1:8888 既可。

二、jps

启动了tomcat(tomcat 通过startup.bat启动)和jps进程  

jps类似于linux下的ps,会列出java的进程。不加参数,则列出 java程序进程ID和Main函数短名称。如:

1 不加参数 进程ID  Main函数短名称

C:\Users\cmcc>jps

544 Jps

7316 Bootstrap   

2 jps -q 只输出进程ID

C:\Users\cmcc>jps -q

4400

7316

3 jps -m 输出传递给该java进程(主函数)的参数

C:\Users\cmcc>jps -m

7316 Bootstrap start

8536 Jps -m

4 jps -l 用于输出主函数的完整路径

C:\Users\cmcc>jps -l

7316 org.apache.catalina.startup.Bootstrap

8748 sun.tools.jps.Jps

5 jps -v查看传递给java虚拟机的参数,即jvm的参数。

C:\Users\cmcc>jps -v

4400 Jps -Denv.class.path=.;C:\Program Files\Java\jdk1.8.0_91/lib/dt.jar;C:\Prog

ram Files\Java\jdk1.8.0_91/lib/tools.jar -Dapplication.home=C:\Program Files\Jav

a\jdk1.8.0_91 -Xms8m

7316 Bootstrap -Djava.util.logging.config.file=E:\install\tomcat8\apache-tomcat-

8.5.23\conf\logging.properties -Djava.util.logging.manager=org.apache.juli.Class

LoaderLogManager -Xms512m -Xmx512m -XX:NewSize=256m -XX:MaxNewSize=256m -XX:Perm

Size=512m -XX:MaxPermSize=512m -XX:+DisableExplicitGC -Djava.rmi.server.hostname

=127.0.0.1 -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=88

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

nticate=false -Djdk.tls.ephemeralDHKeySize=2048 -Djava.protocol.handler.pkgs=org

.apache.catalina.webresources -Dcatalina.base=E:\install\tomcat8\apache-tomcat-8

.5.23 -Dcatalina.home=E:\install\tomcat8\apache-tomcat-8.5.23 -Djava.io.tmpdir=E

:\install\tomcat8\apache-tomcat-8.5.23\temp

6 jps -m -l -v

三、jstat

四、jinfo

五、jmap

六、jhat

七、jstack

八、jstatd

九、jcmd命令

十、hprof