记一次由 MySQL UPDATE 语句导致锁等待后引发的服务炸裂

MySQL UPDATE 语句导致锁等待后引发的服务宕机分析与优化方案

场景描述

接收到 P99 超时告警,定位到某接口导致,接口是由同事实现的,逻辑较简单,是一个 MySQL 的 INSERT OR UPDATE 逻辑, 一个请求过来,判断某个非主键字段是否存在,不存在则 INSERT 插入,存在则按该字段 UPDATE 更新其他字段。

超时告警在触发与恢复之间反复触发,平均耗时 6 秒,接口最近无改动,已上线一段时间运行正常。随后而来的是大面积的接口超时告警,情况开始变得紧急起来。

[阅读全文]

Twisted框架中的HTTP接口性能问题分析与解决方案

在某个客户的环境中,基于 Twisted 框架封装的 HTTP 接口在处理 Web 请求时表现出忽快忽慢的情况。客户反馈的一个具体问题是,一个页面上大约显示九个图表时,部分图表在加载时延迟明显,有时需要等待很长时间才能返回结果。虽然并发量和数据量不大,但在几天的运行后,性能却异常低下。

[阅读全文]