JDK的sql设计不合理导致的驱动类初始化死锁问题 (club.perfma.com)

【简介】

当我们一个系统既需要mysql驱动,也需要oracle驱动的时候,在并发加载初始化这些驱动类的过程中产生死锁的可能性非常大,下面是一个模拟的例子,对于Thread2的实现其实是jdk里java.sql.DriverService的逻辑,也是我们第一次调用java.sql.DriverManager.registerDriver注册一个驱动实例要走的逻辑(jdk1.6下),不过这篇文章是使用我们生产环境的一个系统的线程dump和内存dump为基础进行分析展开的。

点击查看全文 >>

@PerfMa社区 2020-03-31 10:32分享 / 0个评论
赞过的人: IT技术博客大学习
要不要再学学下面的文章?
以深度学习为例理解22种设计模式(一)创建型模式 (johnhany.net)
以深度学习的模型搭建和训练过程为例,解释面向对象编程中22种设计模式的基本原理,并给出C++实现。第一篇介绍创建型模式,包括工厂方法、抽象工厂、生成器、原型以及单例。
by @JohnHany 6小时前 分享 查看详情
一个导致JVM物理内存消耗大的Bug (club.perfma.com)
发现一个系统老是被OS Kill掉,是内存泄露导致的。在查的过程中,阴差阳错地发现了JVM另外的一个Bug。这个Bug可能会导致大量物理内存被使用,我们已经反馈给了社区,并得到快速反馈,预计在OpenJDK8最新版中发布(JDK11中也存在这个问题)。
by @PerfMa社区 2020-05-22 10:48 分享 查看详情
有了这 4 款工具,老板再也不怕我写烂SQL了 (mp.weixin.qq.com)
你对于正在运行的mysql 性能如何?参数设置的是否合理?账号设置的是否存在安全隐患?是否了然于胸?
俗话说工欲善其事,必先利其器,定期对你的MYSQL数据库进行一个体检,是保证数据库安全运行的重要手段。
by @code小生 2020-05-18 13:29 分享 查看详情
进程物理内存远大于Xmx的问题分析 (club.perfma.com)
最近经常被问到一个问题,”为什么我们系统进程占用的物理内存(Res/Rss)会远远大于设置的Xmx值”,比如Xmx设置1.7G,但是top看到的Res的值却达到了3.0G,随着进程的运行,Res的值还在递增,直到达到某个值,被OS当做bad process直接被kill掉了。
by @PerfMa社区 2020-05-12 14:47 分享 查看详情
类初始化死锁导致线程被打爆!打爆!爆! (club.perfma.com)
我们线上的现象是发现非常多的线程都卡死在同一个地方,也不是在做类加载,如果是死循环,那cpu肯定上去了,但是cpu并没有上去,因此比较诡异
by @PerfMa社区 2020-05-07 14:38 分享 查看详情
又抓了一个导致频繁GC的鬼--数组动态扩容 (club.perfma.com)
系统一直在做cms gc,但是老生代一直不降下去,但是执行一次jmap -histo:live之后,也就是主动触发一次full gc之后,通过jstat -gcutil来看老生代一下就降下去了,初看下理论上不太可能,因为full gc也会对old做回收。
by @PerfMa社区 2020-04-24 16:05 分享 查看详情
JVM源码分析之JDK8下的僵尸(无法回收)类加载器 (club.perfma.com)
现象是有一些类加载器是作为key放到WeakHashMap里的,但是经历过多次full gc之后,依然坚挺地存在内存里,但是从代码上来说这些类加载器是应该被回收的,因为没有任何强引用可以到达这些类加载器了
by @PerfMa社区 2020-04-21 16:25 分享 查看详情
SQL 性能优化梳理 (mp.weixin.qq.com)
先简单梳理下Mysql的基本概念,然后分创建时和查询时这两个阶段的优化展开。
1 基本概念简述

1.1 逻辑架构
by @code小生 2020-04-19 18:38 分享 查看详情
Flutter1.12 升级后的问题 (mp.weixin.qq.com)
相信看过官方更新日志的小伙伴都知道新版本的flutter和Android原生交互有一些改变,主要在以下部分
1.自定义的Plugin类需要实现FlutterPlugin的接口,并实现以下两个方法
by @code小生 2020-04-06 21:31 分享 查看详情
谨防JDK8重复类定义造成的内存泄漏 (club.perfma.com)
如今JDK8成了主流,大家都紧锣密鼓地进行着升级,享受着JDK8带来的各种便利,然而有时候升级并没有那么顺利?比如说今天要说的这个问题。我们都知道JDK8在内存模型上最大的改变是,放弃了Perm,迎来了Metaspace的时代。
by @PerfMa社区 2020-04-02 10:30 分享 查看详情