java 分析 线程堵塞 原因_一次线程阻塞问题的分析与解决

本文详细记录了一次由于日志打印引发的Java服务线程阻塞问题的分析过程。通过哨兵系统报警和服务器状态检查,定位到CPU异常和内存溢出。使用Java VisualVM分析dump内存文件,发现多个BLOCK状态线程指向日志模块。代码审查发现,AOP中全局接口日志打印和Log4j的同步问题导致了线程阻塞。解决方案包括移除全局日志配置,改为注解方式,并切换到SLF4J日志库,避免并发死锁。
摘要由CSDN通过智能技术生成

本文来自网易云社区

作者:苏鹏

最近部门的某产品周末时候测试服务器下会无故宕机,周一测试的同学来问具体原因,综合周末收到的哨兵系统的报警,简单分析了现象,应该是后台服务的原因。

1.首先登录哨兵系统,查看我们部署的服务的状态

此处内存、硬盘等指标都是比较正常的水平,但是CPU在某一个时间段非常高,所以初步判断是CPU异常导致了服务宕机(此处应有CPU状态异常图,但是当时没有把事故现场保存下来)

27548744d84dd44fadbe2bfa25349b90.png

b68e565302e7f19ab040869119c35dab.png

2.登录服务器,查看服务器状态

(1) 查看日志

登录部署服务的两台服务器,查看我们部署的两台服务器的日志,果然发现日志里报了oom的错误

c11f0eadb80513b232f4168a532d6343.png

(2)使用top命令

使用top命令,也能看到本服务的CPU占用率会井喷

图略ÿ

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值