- 1
- 0
- 约3.84千字
- 约 5页
- 2021-01-24 发布于北京
- 举报
2018/8/29 极客时间 | 程序员进阶攻略
技术性 Bug 可以从很 度分类,而我则习惯于从 Bug 出现的 “时空” 特征角度来分类。可
划为如下两类:
空间:环境过敏
时间:周期规律
我们就先看看 Bug 的空间维度特征。
环境过敏
环境,即程序运行时的空间与依赖。
程序运行的依赖环境是很复杂的,而且一般没那么可靠,总是可能出现这样或那样的问题。曾经
我经历过一次因为运行环境导致的故障案例:一开始系统异常表现出来的现象是,有个功能出现
时不时的不可用;不久之后,系统开始报警,不停地接到系统的报警短信。
这是一个大规模部署的线上分布式系统,从一开始能感知到的个别系统功能异常到逐渐演变成大
面积的报警和业务异常,这让我们陷入了一个困境:到底异常根源在哪里?为了迅速恢复系统功
能的可用性,我们先把线上流量切到备用集群后,开始紧急地动员全体团队成员各自排查其负责
的子系统和服务,终于找到了原因。
只是因为有个别服务器容器的磁盘故障,导致写日志阻塞,进程挂起,然后引发调用链路处理上
的连锁雪崩效应,其影响效果就是整个链路上的系统都在报警。
互联网企业多采用普通的 PC Server 作为服务器,而这类服务器的可靠性大约在 99.9%,换言
之就是出故障的概率是千分之一。而实际在服务器上,出问题概率最高的可能就是其机械硬盘。
Backblaze 2014 年发布的硬盘统计报告指出,根据对其数据中心 38000 块硬盘(共存储
100PB 数据)的统计,消费级硬盘头三年出故障的几率是 15%。而在一个足够大规模的分布式
集群部署上,比如 Google 这种百万级服务器规模的部署级别上,几乎每时每刻都有硬盘故障
发生。
我们的部署规模自是没有 Google 那么大,但也不算小了,运气不好,正好赶上我们的系统碰
上磁盘故障,而程序的编写又并未考虑硬盘 I/O 阻塞导致的挂起异常问题,引发了连锁效应。
这就是当时程序编写缺乏对环境问题的考虑,引发了故障。人有时换了环境,会产生一些从生理
到心理的过敏反应,程序亦然。运行环境发生变化,程序就出现异常的现象,我称其为 “程序
过敏反应”。
以前看过一部美剧《豪斯医生》,有一集是这样的:一个手上出现红色疱疹的病人来到豪斯医生
的医院,豪斯医生根据病症现象初步诊断为对某种肥皂产生了过敏,然后开了片抗过敏药,吃过
后疱疹症状就减轻了。但一会儿后,病人开始出现呼吸困难兼并发哮喘,豪斯医生立刻给病人注
/column/article/14339 2/5
2018/8/29 极客时间 | 程序员进阶攻略
射了 1cc 肾上腺素,之后病人呼吸开始变得平稳。但不久后病人又出现心动过速,而且很快心
跳便停止了,经过一番抢救后,最终又回到原点,病人手上的红色疱疹开始在全身出现。
这个剧情中表现了在治疗病人时发生的身体过敏反应,然后引发了连锁效应的问题,这和我之前
描述的例子有相通之处:都是局部的小问题,引发程序过敏反应,再到连锁效应。
过敏在医学上的解释是:“有机体将正常无害的物质误认为是有害的东西。”而我对 “程序过
敏反应” 的定义是:“程序将存在问题的环境当作正常处理,从而产生的异常。”而潜在的环
境问题通常就成了程序的 “过敏原”。
该如何应对这样的环境过敏引发的 Bug 呢?
应对之道
应对环境过敏,自然要先从了解环境开始。
不同的程序部署和运行的环境千差万别,有的受控,有的不受控。比如,服务端运行的环境,一
般都在数据中心(IDC)机房内网中,相对受控;而客户端运行的环境是在用户的设备上,存在
不同的品牌、不同的操作系统、不同的浏览器等等,多种多样,不可控。
环境那么复杂,你需要了解到何种程度呢?我觉得你至少必须关心与程序运行直接相关联的那一
层环境。怎么理解呢?以后端 Java 程序的运行为例,Java 是运行在 JVM 中,那么 JVM 提供
的运行时配置和特性就是你必须要关心的一层环境了。而 JVM 可能是运行在 Linux 操作系统或
者是像 Docker 这样的虚拟化容器中,那么 Linux 或 Docker 这一层,理论上你的关
您可能关注的文档
最近下载
- 2015款_威朗使用说明书.pdf VIP
- DB21_T 2943-2018农村生活污水处理技术指南.docx VIP
- 2025年浙江省单独考试招生文化考试语文试卷及答案.docx VIP
- 《公共数据 数据分类分级规范》(DB54T 0423-2024).pdf VIP
- 环卫工人工资专用账户管理协议示范文本模板.docx VIP
- 2023年浙江省单独考试文化招生语文试卷 含答案.docx VIP
- 外研版(2024新版)七年级上册英语全册教案(单元整体教学设计).pdf VIP
- gb2828抽样计划表培训课件.ppt VIP
- 浅谈民间童谣在幼儿园课程中的整合策略.doc VIP
- 违法发放贷款罪专题讲座参考课件.pdf VIP
原创力文档

文档评论(0)