单接口变慢和整个服务变慢,入口完全不是一回事
15:41,值班群里丢来一句话: “/order/confirm 超时了。”
Java
这里按页继续往后翻,仍然围绕接口变慢、数据库等待、线程池、JVM 与线上问题排查这些问题。
15:41,值班群里丢来一句话: “/order/confirm 超时了。”
接口慢和 timeout 这类事故,难的往往不是不会查,而是现场一乱,大家又回到临时拼顺序:
有一次慢接口排查,最先把大家带偏的不是技术问题,而是一条日志。
很多慢接口排查,都会走到一个很让人挫败的时刻:
“同一套代码,怎么会跑出两套结果?”
这类问题我一般不从“线程池、连接池、缓存先看哪个”开始问,而是先盯住一台在高峰期会发飘的实例。
那次把顺序逼出来的事故,发生在一个周三晚上。
最像“应用自己起不来”的慢启动现场,往往长这样: