服务端JAVA服务检查

服务端代码可能出现各种各样的问题,有不同的方式可以进行调试,比如看日志、使用远程调试工具(例如jprofiler),自带的命令工具。

例如Java服务,使用JDK自带命令:

怀疑服务的线程阻塞了,可以查看线程状态,看看因为哪里导致。

1、先查看java进程,找到你关心的服务

jps -lm
2、打印进程状态
jstack 27092|grep java.lang.Thread.State| awk '{print $2$3$4$5}' | sort | uniq -c
运行结果:
  8 RUNNABLE
  1 TIMED_WAITING(sleeping)
  4 WAITING(onobjectmonitor)
  150 WAITING(parking)

也可以直接使用jstack 27092 > log 去分析代码。

3、查看JVM内存的使用情况

jmap -heap 27092

4、也可以查看服务中存活的对象

jmap -dump:live,format=b,file=dump.hprof 27092

生成dump文件后可以利用自带的web服务加载,在浏览器中查看

jhat -J-Xmx512m dump.hprof



猜你喜欢

转载自blog.csdn.net/weixin_41579863/article/details/80095183