当前位置: 首页 > news >正文

死锁的原因、表现以排查

什么是死锁

死锁是指两个或两个以上的线程(或进程)在执行过程中,因为争夺资源而陷入的相互等待的状态,若无外力干涉,它们都无法推进下去。

表现

1、用户反馈:哪个功能卡住了,具体的操作路径是什么?涉及哪些页面或接口
2、QPS/TPS:是否暴跌或降为0。
3、相应时间:是否飙至无限长。
4、错误率:是否出现大量超时错误。
5、资源状态:CPU使用率是否很低(说明线程正在处理阻塞中),数据库连接池是否被耗尽。

初步定位问题层

1、应用层死锁:表现为某个服务实例完全无相应,但其他的服务可能正常
2、数据库死锁:表现为涉及某个特定数据库表的操作全部挂起,但是应用服务本身还是健康的,只是无法完成数据库操作)
3、分布式死锁:表现为多个微服务之间的一个调用链卡住,每个服务都在等待上游或者下游的响应,形成一个跨服务的循环等待。

深入调查和取证

应用层死锁

1、 观察全局的流量和基础设施监控

1.1、看是哪条业务线的QPS/TPS暴跌或着响应时间飙升,这个可以立刻帮你缩小范围到某一个业务域(比如是用户中心的问题,还是订单服务的问题)
1.2、看应用层,看有没有某一个服务的CPU使用率异常, 突然100%或者0%,或者GC异常
1.3、看中间件:数据库的连接池是否耗尽,消息队列是否有大量堆积,这些都可以指向依赖他们的应用

2、使用工具来分析

工具:jstack,jconsle,Arthas
操作:找到有应用Pod或服务器,获取其PID,在短时间内(如隔5-10秒)连续执行2-3次jstack。如果多次的dump都显示同一批线程阻塞在同一个锁对象上,那可以基本断定为死锁,同时分析deadlock关键字,jstack有时会直接报告。

数据库死锁(常见)

工具:数据库的系统表或命令
Mysql:执行 shwo engine innodb status;命令;在输出结果中,有一个Latest detected deadlocak章节,会清晰的记录一次死锁的详细信息,包括涉及的事务SQL、争夺的资源(索引、记录)以及回滚哪个事务,这就是最直接的证据。或者查询information_schema.INNODB-TRX,查看当前有哪些长时间运行的事务。

分布式死锁(最复杂)

这里指的是服务A等待服务B的响应,服务B等待服务C的响应,而服务C又在等待服务A的响应,形成了一个跨网络的循环等待。
工具:分布式链路追踪系统(如SkyWalking,Jaeger,Zipkin)
操作:找到卡住链路:根据卡住的功能特征,搜索调用链,分析链路图谱,可以找到一个调用链一直处于等待中,并且停留在一个或者多个服务节点上。

http://www.sczhlp.com/news/192131/

相关文章:

  • 做视频网站视频加载过慢荆州哪里做网站
  • 福建省建设厅网站 企业什么秀网站做效果图
  • 重庆九龙坡区哪里有做网站的seo关键词首页排名
  • 设计网站app做盗版电影网站
  • 个人建设纪检网站网站改版需要重新备案吗
  • 佛山免费自助建站模板获得网站后台地址
  • 做微商选择的哪个平台微平台网站内网怎么做网站服务器
  • 打名字就说你是什么做的网站石家庄网站建立
  • 太原网站建设开发公司船舶设计公司排名
  • wordpress 站长工具源码wordpress前台头像
  • 网站描述模板学ui设计网站
  • 佛山企业网站建设技术1 网站建设的目标是什么
  • 凤冈县住房和城乡建设局网站会宁网站建设公司
  • 鸿运网站建设公司邮箱后缀有哪些
  • 威海市环翠区建设局网站乐都企业网站建设哪家快
  • 做网站app优惠活动的东营市垦利区胜坨填建设站的网站
  • 用仿网站做优化有效果吗采购平台官网
  • 仿牌做外贸建网站桔子建站官网
  • 汽车网站排行榜前十名大丰有没有做网站
  • 皮卡剧网站怎样做个人工作室
  • 合肥建设厅网站福田深圳网站建设
  • 怎么学做电子商务网站wordpress 文章点击
  • 竞价推广年终总结北京网站优化专家
  • 南昌做网站优化价格编辑网页软件
  • 织梦cms传播公司网站模板网站开发的职责与分工
  • 厦门地税网站建设物联网就业方向及前景
  • Zabbix 6.0+ 运用官方模板监控 Redis 数据库的完整安装指南
  • 20232323 2025-2026-1《网络与系统攻防技术》实验一实验报告
  • 树莓派4B安装WiringPi使用gpio命令
  • 沈阳网站搜索排名高权重网站收录问题