码迷,mamicode.com
首页 > 编程语言 > 详细

性能测试三十二:监控之Java线程监控

时间:2019-01-19 11:20:45      阅读:239      评论:0      收藏:0      [点我收藏+]

标签:gem   jdk   详情   .sh   无限   rem   不同的   The   展示   

 

技术分享图片

 

线程的五种状态
* 新建:new
* 运行:runnable
* 等待:waitting(无限期等待),timed waitting(限期等待)
* 阻塞:blocked
* 结束:terminated

 

 

线程的两种监控方法
一,jvisualvm,图形界面的方式
监控之前先对jvm加监控参数,在tomcat的bin目录下,catalina.sh文件中,第二行添加:
JAVA_OPTS="-Dcom.sun.management.jmxremote.port=10086 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false -Djava.rmi.server.hostname=10.0.0.9"

1-改port
2-改hostname为本机ip

如果想要监控和多个tomcat,则需要在每一个tomcat下都添加这行参数,且端口号不重复

技术分享图片

技术分享图片

技术分享图片

保存并重启tomcat

技术分享图片

查看10086的进程是否存在:netstat -an|grep 10086

 技术分享图片

或者

查看10086的使用详情:lsof -i:10086

技术分享图片

 

windows_cmd下,输入(前提,jdk配好环境变量)

技术分享图片

配置ip

 技术分享图片

在监控的ip上右键_添加JMX连接

技术分享图片

填写端口号

技术分享图片

技术分享图片

命令行执行 netstat -an|grep 10086

技术分享图片

技术分享图片

查看线程

技术分享图片

 

 

二,jstack pid(进程号):命令行方式,打印当前所有的线程及执行状态

 技术分享图片

由于此命令会直接把内容展示在屏幕上,不好查看,所以最好重定向输出

如,把结果打印到a.log文件里面:jstack 8743 > a.log

技术分享图片

技术分享图片

技术分享图片

每一段这种就是一个线程

技术分享图片

 

 构建几个场景看看

技术分享图片

构造线程状态的Java脚本:java -jar thread-test.jar [1|2|3|4]
构造不同的状态的线程


1:runnable

java -jar thread-test.jar 1

技术分享图片

复制一个会话,查看刚刚运行的java的进程

技术分享图片

技术分享图片

技术分享图片

技术分享图片

 

2:waitting

java -jar thread-test.jar 2

技术分享图片

技术分享图片

 

3:timedWaitting

java -jar thread-test.jar 3

技术分享图片

技术分享图片

 


4:blocked

java -jar thread-test.jar 4

技术分享图片

技术分享图片

 

性能测试三十二:监控之Java线程监控

标签:gem   jdk   详情   .sh   无限   rem   不同的   The   展示   

原文地址:https://www.cnblogs.com/zhongyehai/p/10290155.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!