背景

下午五点多收到某线上服务可用性骤降的报警:499比例超阈值。查看监控发现服务可用性在各个idc均有下降;服务500错误码比例飙升。

问题追查

  1. 登上(刚开始还可以远程登录)单台机器查看PHP的Fatal日志:某脚本执行时间超过php-cgi最大执行时长(30s)。查看该脚本发现该脚本在特殊场景下会触发死循环,造成php-cgi进程一直在执行,直到达到设置的最大执行时长。
  2. 服务的上游有超时(1.5s)限制,超时之后会主动断开连接,最终在服务的access日志中记录499的状态码!
  3. 每个机器上开启了128个php-cgi进程,30s内如果有超过128个请求的话就会造成后续过来的请求没有相应的php-cgi进程进行处理,造成502!
  4. 查看机器的CPU,发现机器CPU负载在95%以上。
  5. 下午五点PM通过某平台进行了配置文件上线操作

快速止损

  1. 修改脚本文件,通过某平台重新上线配置文件,然而一直上线失败,机器亦无法远程登录,应该是机器CPU负载打满,机器宕机。此路不同。
  2. 发机器重启上线单,重启成功。可以重新登录,半分钟之后,机器再次宕机。此路不同。
  3. 联系OP,缩容机器,丢弃部分流量,并由OP重启机器。重启之后再次上线配置,上线成功,之后再由OP进行扩容,恢复流量,服务最终可用。

服务不可用时长达到1小时,造成全年服务可用性低于4个9。

总结

  1. 完善既有服务配置文件上线机制
  2. 加强代码上线前的code review
  3. 梳理服务应急预案

一次难忘的线上事故。

线上服务可用性骤降追查相关推荐

  1. 如何提高线上服务可用性

    上一篇文章中我简单介绍了一次线上服务的可用性下降追查过程,今天我们接着上次的内容来学习如何保证服务的高可用性. 具体分为开发阶段.测试阶段.上线阶段.监控阶段等几大项.这些内容就像是一套组合拳,练好了 ...

  2. java - JVM 线上服务的FGC问题排查

    线上服务的GC问题,是Java程序非常典型的一类问题,非常考验工程师排查问题的能力.同时,几乎是面试必考题,但是能真正答好此题的人并不多,要么原理没吃透,要么缺乏实战经验. 过去半年时间里,我们的广告 ...

  3. 线上服务的FGC问题排查,看这篇就够了!

    线上服务的GC问题,是Java程序非常典型的一类问题,非常考验工程师排查问题的能力.同时,几乎是面试必考题,但是能真正答好此题的人并不多,要么原理没吃透,要么缺乏实战经验. 过去半年时间里,我们的广告 ...

  4. 【转】线上服务的FGC问题排查,看这篇就够了!

    线上服务的GC问题,是Java程序非常典型的一类问题,非常考验工程师排查问题的能力.同时,几乎是面试必考题,但是能真正答好此题的人并不多,要么原理没吃透,要么缺乏实战经验. 过去半年时间里,我们的广告 ...

  5. JVM:线上服务的FGC问题排查

    原文链接:https://blog.csdn.net/bestxianfeng163/article/details/107972060 线上服务的GC问题,是Java程序非常典型的一类问题,非常考验 ...

  6. 线上服务CPU100%问题快速定位实战--转

    来自微信公众号 架构师之路 功能问题,通过日志,单步调试相对比较好定位. 性能问题,例如线上服务器CPU100%,如何找到相关服务,如何定位问题代码,更考验技术人的功底. 58到家架构部,运维部,58 ...

  7. 线上服务CPU100%问题快速定位实战(转载公众号:架构师之路)

    功能问题,通过日志,单步调试相对比较好定位. 性能问题,例如线上服务器CPU100%,如何找到相关服务,如何定位问题代码,更考验技术人的功底. 58到家架构部,运维部,58速运技术部联合进行了一次线上 ...

  8. HH SaaS电商系统的线上服务商品库存和采购设计

    文章目录 线上服务商品库存和采购整体思路 线上服务商品的采购单状态 线上服务商品的出库单状态 商家完成服务 线上服务商品库存和采购整体思路 线上服务商品直接在商品编辑页面编辑库存数量即可,服务端自动生 ...

  9. springboot怎么杀进程_线上服务平均响应时间太长,怎么排查?

    线上服务平均响应时间太长,怎么排查? https://xie.infoq.cn/article/914b5c56000a3880016abd8d6 前言: 最近线上环境某个接口服务响应时间偏长,导致用 ...

最新文章

  1. 京医通如何删除临时卡,解绑
  2. 从java到c_怎样快速的从 Java 转到 C ?
  3. 走近TCP/IP协议
  4. 数论总结 (常用定理+ 模板)
  5. SQL获取上个月第一天和最后一天的时间写法
  6. 《JAVA与模式》之合成模式
  7. 每隔10秒钟打印一个“Helloworld”
  8. Java线程中关于Synchronized的用法
  9. Selector的一些state使用
  10. Problem E: 校庆
  11. 烹调方案(洛谷-P1417)
  12. Codeforces Round #224 (Div. 2): C. Arithmetic Progression(模拟)
  13. 约瑟夫环循环队列问题java_java 实现约瑟夫环
  14. jmeter需要学习的其他点
  15. 通达信自编的选股公式如何使用
  16. html入门教程推荐,html入门教程:8个html零基础入门教程推荐
  17. Elasticsearch _search查询参数及过滤
  18. 2509-Druid监控功能的深入使用与配置-基于SpringBoot-完全使用 .properties配置文件
  19. JS之replace与replaceAll
  20. SFC模拟器coming soon

热门文章

  1. 别再用音量键截屏啦,华为手机的6种截屏方法你都会吗?很方便
  2. ‍w3wp.exe占用内存过高的问题
  3. 网页挖矿溯源?浏览器浏览历史查看工具Browsinghistoryview
  4. [转]鸟群是怎样自觉保持队形的
  5. dos下查询网络内的计算机名,dos下查看ip_dos下查看ip地址_dos查看局域网ip_dos命令查本机ip的命令...
  6. steam搬砖项目,长久稳定,月入5000+
  7. java创建线程的四种方法
  8. 初识「零知识」与「证明」
  9. 光纤光信号闪红灯_光猫的光信号灯是闪烁的红灯可能是什么原因造成的?
  10. IOS开发 之百度地图API环境搭建