from:https://www.cnblogs.com/jack-Star/p/9683023.html 一、线程5种状态 新建状态(New) 新创建了一个线程对象。 就绪状态(Runnable) 线程对象创建后,其他线程调用了该对象的start()方法。该状态的线程位于可运行线程池中,变得可运行 ...
分类:
编程语言 时间:
2019-09-26 14:47:50
阅读次数:
95
1、介绍 jstack用于打印出给定的java进程ID或core file或远程调试服务的Java堆栈信息,如果是在64位机器上,需要指定选项"-J-d64",Windows的jstack使用方式只支持以下的这种方式: jstack [-l] pid 如果java程序崩溃生成core文件,jstac ...
分类:
Web程序 时间:
2019-09-21 23:22:41
阅读次数:
127
第一步:用jstack命令dump线程信息,看看pid为3117的进程里的线程都在做什么 第二步:统计所有线程分别处于什么状态,发现300多个线程处于WAITING(onobjectmonitor)状态 第三步:打开dump文件查看处于WAITING(onobjectmonitor)的线程在做什么。 ...
分类:
编程语言 时间:
2019-09-06 01:23:41
阅读次数:
109
背景 有朋友反馈zk连接很慢。整理出zk连接的关键逻辑如下: 有朋友反馈zk连接很慢。整理出zk连接的关键逻辑如下: 上面的代码造成第一次调用ClientZkAgent.getInstance的时候,需耗时10s, 这个时间恰好跟semaphore的超时时间相当. 在此期间,整个世界好像停滞了一样。 ...
分类:
编程语言 时间:
2019-09-03 21:55:59
阅读次数:
98
一、可能有线程一直占用CPU资源 1. 先通过 ps 查看进程状态,找出进程的PID(8209)。 2.jstack l 8209 > /usr/local/work/tomcat/8209.stack 导出PID对应的线程信息到文件 3.对导出的线程文件下载本地做分析(可以文本打开) 4. ...
分类:
系统相关 时间:
2019-08-27 11:01:36
阅读次数:
88
问题一: 刚进入到首页,或者刷新一下,就一直爱的魔力转圈圈。 排查法: (一)、请求未发送到服务器 1、负载机问题(cpu、磁盘、内存) 2、网络问题 (二)、请求发送到服务器,可能是服务器处理或者返回过程出现问题 1、应用服务器cpu、磁盘、内存、网络 2、数据库服务器cpu、磁盘、内存、网络 3 ...
分类:
其他好文 时间:
2019-08-24 13:38:55
阅读次数:
93
转自:https://my.oschina.net/zhangxufeng/blog/3017521 Full GC次数过多 首先我们可以使用top命令查看系统CPU的占用情况 该进程下的各个线程运行情况如下: 通过jstack命令查看线程id为10的线程为什么耗费CPU最高,在jsatck命令展示 ...
分类:
其他好文 时间:
2019-08-15 13:16:12
阅读次数:
70
JVM故障分析系列之四:jstack生成的Thread Dump日志线程状态 2017年10月25日 Jet Ma JavaPlatform JVM故障分析系列系列文章 JVM故障分析系列之一:使用jstack定位线程堆栈信息JVM故障分析系列之二:jstack生成的Thread Dump日志结构解 ...
分类:
编程语言 时间:
2019-08-13 21:03:35
阅读次数:
128
步骤如下: 1.使用top命令定位异常进程。可以看见12836的CPU和内存占用率都非常高 2.使用top H p 进程号查看异常线程 3.使用printf "%x\n" 线程号将异常线程号转化为16进制 4.使用jstack 进程号|grep 16进制异常线程号 A90来定位异常代码的位置(最后的 ...
分类:
其他好文 时间:
2019-07-30 15:45:09
阅读次数:
96