性能测试全栈笔记:57.Java线程监控-基础篇
性能测试全栈笔记:
57.Java线程监控-基础篇
监控java线程工具:jvisualvm(jdk自带工具)、jstack(快照/命令行)
- java线程有问题,有了工具应该看什么,关注什么?
- 解答:线程状态
线程的五种状态:
- 新建:new
- 运行:runnable
- 等待:waitting(无限等待)、timed waitting(限期等待/需关注)
- 阻塞:blocked(需关注)
- 结束:terminated
下面用几个例子来说明上述几种状态:
先用jvisualvm工具:
步骤1:监控之前先对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=192.168.25.168"
tip:
- 选择10086端口号时,先看一下端口有没有被占用:
netstat -lnp |grep 10086
或者netstat -anp |grep 10086
- 192.168.25.168:需要监控的那台机器IP
步骤2:保存并退出
步骤3:重启tomcat
ps -ef | grep tomcat
kill -9 pid
- tomcat的bin目录下启动tomcat:
./startup.sh
或者sh startup.sh
tip:
- 如果启动失败,看一下配置代码里是不是多了空格
- 启动后看一下前台站点是不是真的启动了
步骤4:添加jvisualvm监控
jvisualvm工具路径:本地jdk文件夹下bin文件夹内jvisualvm.exe文件(C:\Program Files\Java\jdk1.8.0_202\bin\jvisualvm.exe),取决于jdk安装路径
- 点击确定
- 鼠标右击,选择JMX连接
- 填写之前设置的端口号:10086
点击确定,稍等片刻会接进来:
其中,pid:5481表示tomat进程号
整体监控:
java线程:
通过整体监控和java线程,可以帮助我们完成很多性能问题分析,后续会一一分享