类初始化死锁导致线程被打爆!打爆!爆! (club.perfma.com)

【简介】

我们线上的现象是发现非常多的线程都卡死在同一个地方,也不是在做类加载,如果是死循环,那cpu肯定上去了,但是cpu并没有上去,因此比较诡异

点击查看全文 >>

@PerfMa社区 2020-05-07 14:38分享 / 0个评论
赞过的人: PerfMa社区
要不要再学学下面的文章?
一个导致JVM物理内存消耗大的Bug (club.perfma.com)
发现一个系统老是被OS Kill掉,是内存泄露导致的。在查的过程中,阴差阳错地发现了JVM另外的一个Bug。这个Bug可能会导致大量物理内存被使用,我们已经反馈给了社区,并得到快速反馈,预计在OpenJDK8最新版中发布(JDK11中也存在这个问题)。
by @PerfMa社区 2020-05-22 10:48 分享 查看详情
又抓了一个导致频繁GC的鬼--数组动态扩容 (club.perfma.com)
系统一直在做cms gc,但是老生代一直不降下去,但是执行一次jmap -histo:live之后,也就是主动触发一次full gc之后,通过jstat -gcutil来看老生代一下就降下去了,初看下理论上不太可能,因为full gc也会对old做回收。
by @PerfMa社区 2020-04-24 16:05 分享 查看详情
JDK的sql设计不合理导致的驱动类初始化死锁问题 (club.perfma.com)
当我们一个系统既需要mysql驱动,也需要oracle驱动的时候,在并发加载初始化这些驱动类的过程中产生死锁的可能性非常大,下面是一个模拟的例子,对于Thread2的实现其实是jdk里java.sql.DriverService的逻辑,也是我们第一次调用java.sql.DriverManager.registerDriver注册一个驱动实例要走的逻辑(jdk1.6下),不过这篇文章是使用我们生产环境的一个系统的线程dump和内存dump为基础进行分析展开的。
by @PerfMa社区 2020-03-31 10:32 分享 查看详情
类初始化导致死锁 (club.perfma.com)
本文要说的是之前在生产环境上碰到,是类初始化导致的死锁,恩,你没看错,确实是类初始化导致的死锁,本文将这个问题描述的场景更加通用化了。
by @PerfMa社区 2020-03-26 10:22 分享 查看详情
JVM 源码分析之一个 Java 进程究竟能创建多少线程 (club.perfma.com)
虽然这篇文章的标题打着JVM源码分析的旗号,不过本文不仅仅从 JVM 源码角度来分析,更多的来自于 Linux Kernel 的源码分析,今天要说的是 JVM 里比较常见的一个问题。
by @PerfMa社区 2020-03-12 09:51 分享 查看详情
消失的死锁 (club.perfma.com)
如果java层面发生了死锁,当我们使用jstack命令的时候其实是可以将死锁的信息给dump出来的
by @PerfMa社区 2020-02-05 11:15 分享 查看详情
Looper.loop 为什么不会阻塞掉 UI 线程?来,我们从源码里面找到答案 (mp.weixin.qq.com)
之前在学习Hanlder源码的时候,刚好涉及到 Looper.loop 方面的知识,这里进行一下回答
by @code小生 2019-10-20 22:42 分享 查看详情
Java 线程池 ThreadPoolExecutor 八种拒绝策略浅析 (mp.weixin.qq.com)
谈到 Java 的线程池最熟悉的莫过于 ExecutorService 接口了,jdk1.5 新增的 java.util.concurrent 包下的这个 api,大大的简化了多线程代码的开发。而不论你用 FixedThreadPool 还是 CachedThreadPool 其背后实现都是ThreadPoolExecutor。ThreadPoolExecutor 是一个典型的缓存池化设计的产物,因为池子有大小,当池子体积不够承载时,就涉及到拒绝策略。JDK 中已经预设了 4 种线程池拒绝策略,下面结合场景详细聊聊这些策略的使用场景,以及我们还能扩展哪些拒绝策略。
by @zhisheng_blog 2019-09-22 13:36 分享 查看详情
MaxCompute 费用暴涨之存储压缩率降低导致SQL输入量变大 (yq.aliyun.com)
我们先明确MaxCompute SQL后付费的计费公式:一条SQL执行的费用=扫描输入量 ️ SQL复杂度 ️ 0.3(¥/GB)。变量主要是输入量和复杂度,如果SQL没有变更的情况下复杂度度也没有变化,那么费用上涨主要原因就是输入量增加,因此我们侧重从输入量去排查是什么环节导致来了输入量的增加。
by @可耐芊小仙女 2019-07-08 15:39 分享 查看详情
MaxCompute 费用暴涨之存储压缩率降低导致SQL输入量变大 (yq.aliyun.com)
我们先明确MaxCompute SQL后付费的计费公式:一条SQL执行的费用=扫描输入量 ️ SQL复杂度 ️ 0.3(¥/GB)。变量主要是输入量和复杂度,如果SQL没有变更的情况下复杂度度也没有变化,那么费用上涨主要原因就是输入量增加,因此我们侧重从输入量去排查是什么环节导致来了输入量的增加。
by @可耐芊小仙女 2019-06-26 15:48 分享 查看详情