Java线程及Jvm监控工具
Java线程状态
线程的五种状态
* 新建:new(时间很短)
* 运行:runnable
* 等待:waitting(无限期等待),timed waitting(限期等待)
* 阻塞:blocked
* 结束:terminated(时间很短)
Jvm监控工具
一、jstack
介绍:
jstack用于打印出给定的java进程ID或core file或远程调试服务的Java堆栈信息。
如果是在64位机器上,需要指定选项"-J-d64",Windows的jstack使用方式只支持以下的这种方式:jstack [-l] pid
如果java程序崩溃生成core文件,jstack工具可以用来获得core文件的java stack和native stack的信息,从而可以轻松地知道java程序是如何崩溃和在程序何处发生问题。
另外,jstack工具还可以附属到正在运行的java程序中,看到当时运行的java程序的java stack和native stack的信息, 如果现在运行的java程序呈现hung的状态,jstack是非常有用的。
使用:
1、查看运行程序的进程号
2、jstack dump当前线程状态
3、根据当前抓取到的信息进行进一步的分析
二、jvisualvm
jdk自带有个jvisualvm工具、该工具是用来监控java运行程序的cpu、内存、线程等的使用情况。并且使用图表的方式监控java程序、还具有远程监控能力。
前期准备
1、上传tomcat到虚拟机,webapps下存在Prefteach包
2、监控之前先对jvm加监控参数,在tomcat的bin目录下,catalina.sh文件中,搜索JAVA_OPTS=,在if里面,添加:
-Dcom.sun.management.jmxremote.port=10086 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false -Djava.rmi.server.hostname=192.168.1.101
以上添加的内容,需要修改两处
1-改port
2-改hostname为本机ip
3、启动tomcat并打开输出日志:./startup.sh ../logs/catalina.out
jvisualvm使用
1、windows键+R键 输入jvisualvm回车
2、右键远程添加远程主机
3、在 主机ip 上右键添加jmv连接
4、输入远程连接的端口号点击确定
5、双击192.168.1.101:10086,打开如下图所示的界面
6、进入jvisualvm时时查看程序运行状态
注释:在测试环境中有可能没有权限在服务器上添加需要远程连接的配置,这样只能使用jstack
最新文章
- python 安装模块步骤
- 快速使用node.js进行web开发
- matlab 字符分割
- IPy
- adb device出现error:unknown host service
- 长安CS15_手动——16款
- String类的一些方法
- java异常基础知识点
- Xcode打包framework脚本
- numpy库常用基本操作
- Core Animation 文档翻译 (第一篇)
- 洛谷P3796 【模板】AC自动机(加强版)(AC自动机)
- eclipse汉化链接
- 【7】学习C++之类的构造函数
- XML基础学习
- 【转帖】 redis 命令 From https://www.cnblogs.com/zhouweidong/p/7550717.html
- Java:多线程,CyclicBarrier同步器
- React-Native 在android写不支持gif的解决方案!
- 深入理解ajax系列第三篇
- RTX——第7章 任务管理
热门文章
- 又见古老的Typosquatting攻击:这次入侵Npm窃取开发者身份凭证
- 【CV论文阅读】生成式对抗网络GAN
- 5 shell命令之tr
- poj 3233(矩阵高速幂)
- 一张图告诉你是须要 SQL 还是 Hadoop
- Codeforces Round #324 (Div. 2)D. Dima and Lisa 数学(素数)
- HDU1052Tian Ji -- The Horse Racing
- 关于Android热点模式下的UDP广播
- Explicit Interface Implementation (C# Programming Guide)
- YTU 2517: 打倒魔王↖(^ω^)↗