专栏名称: SegmentFault思否
SegmentFault (www.sf.gg)开发者社区,是中国年轻开发者喜爱的极客社区,我们为开发者提供最纯粹的技术交流和分享平台。
目录
相关文章推荐
程序猿  ·  41岁DeepMind天才科学家去世:长期受 ... ·  13 小时前  
程序员的那些事  ·  OpenAI ... ·  14 小时前  
程序员小灰  ·  清华大学《DeepSeek学习手册》(全5册) ·  昨天  
程序员小灰  ·  3个令人惊艳的DeepSeek项目,诞生了! ·  昨天  
OSC开源社区  ·  2024: 大模型背景下知识图谱的理性回归 ·  2 天前  
51好读  ›  专栏  ›  SegmentFault思否

故障中的跨年夜

SegmentFault思否  · 公众号  · 程序员  · 2020-01-04 10:00

正文

2019 年 12 月 31 日晚,我正在公司门口准备打车回家,因为想跟家里人一起过个跨年夜。


望着灯光四射的广州塔,脑海里突然出现了 2012 年跨年夜的场景。 那时候也是 12 月 31 日晚, 也有出租车, 也有广州塔,还有一个跨年的故障。


我记得当晚,我们一帮同学四人,约好了去广州塔倒数,毕竟还年轻,对跨年倒数这个事情还蛮热衷的。


说好了,他们三个搭出租车,到我楼下的路口来接我。


那晚天气稍冷,需要穿两到三件衣服的样子,时不时有微风吹过。 路上行人络绎不绝,大家三三两两的,都朝广州塔方向走去。 路边绿化树上,各高楼外墙,广州塔上,灯光闪闪。 一片喜庆热闹的图景。


搭载着我同学的出租车到了,我赶忙上了车,一上车,大家就七嘴八舌地寒暄起来,虽然同在广州,但一年见面相聚的次数也不多,每次相聚,都像认识了几十年的老友。


大家聊得正酣的时候,我的手机突然响了。 我打开手机一看 , 公司的电话,“完了,麻烦来了! ”  我的潜意识犹如条件反射般 ,立马想到了故障。


我接听了电话,是值班机器人的报警,提示说我有一个5星报警,需要我关注。

我立马打开了微信,报警机器人给我推送了一条 机器磁盘占用率超过 80% 的报警。


我点进那条 h5 消息,看了具体的细节。 是 朋友圈集群 的一组机器,看曲线,机器的磁盘占用率已经达到 80%了, 而且还有继续上涨的趋势。


2012 年,年中的时候,我们已经将自研存储系统推广到了微信的账号,联系人等模块,朋友圈模块是一个月前刚接入的。 因为朋友圈的写入量相比其它业务要大很多,所以确实存在一些待优化的地方,但因为人力紧张,还没给排上期。


当初存储系统的设计,为了追求更高的性能,采用的是追加写的模式,所以会引入数据膨胀的问题。 不过,我们设计了一套数据回收机制,可以让机器在夜晚低峰期的时候,做数据回收。 不过遇到写入量巨大的时候,会出现回收速度赶不上写入速度,导致爆磁盘的隐患。


那晚的故障,便是这个原因带来的。


我一看,磁盘占用率已经80%了,心里一紧,想着回家 vpn 处理,但刚上出租车,而且大家伙已经大半年没聚了,真不想扫大家的兴。


后来我静下心来仔细想了想,想到了处理的办法。 我赶紧联系了一个开发同事A, 但A刚好也在外面,然后又联系了运维同学B, B在家里,可以帮忙 vpn 处理。


处理方式不难,就是提前打开磁盘回收进程,回收磁盘空间,但过程中需要时刻监控机器的负载,保证服务质量不受影响,所以需要有人一直盯着。


我电话跟 B 说明了整个过程,他表示没问题,可以处理。


于是,我心稍微安定了下来。 10 分钟后,出租车到达了广州塔周边的一个露天酒吧,我们准备在那个露天酒吧喝点啤酒,然后看着广州塔的上的倒计时跨年倒数。


一下车,我靠路边站定,立马电话运维同学B, 询问处理的情况。 他说一切操作完毕,回收进程已经开启,目前磁盘占用率由 80% 下降到了 75% 。


我心更安定了些。 我们走进酒吧,找地方坐定,我同学点了些酒。 喝着啤酒,就着些小吃,看着珠江上的游船和对岸珠江新城绚丽的灯光,着实惬意,不过忽得想起那个故障来,心里又隐隐升起一丝担忧。


23: 59: 50 秒,广州塔上出现了倒数的计时器, 我们仰头对着计时器,跟着全酒吧的人一起倒数  “10 , 9 , 8 , 7 , 6, 5, 4,3,2,1 ”, “耶, 新年快乐! ”  我们举杯同庆。


大家沉浸在一片欢乐中,我看有人开始认真拿着手机,在编辑什么。 我也打开了手机,习惯性的打开朋友圈,一看, “麻烦又来了”。 就在刚刚一分钟不到的时间里,已经多了十几条的新动态,我想朋友圈的那组机器可能要撑不住了!


我赶紧电话了运维同学 B, 确实如我所料,磁盘占用率飞速上涨,目前已经到 85% 了,而且上涨势头不减。


我跟 B 说,再调大回收的速度吧,也暂时想不到更好的处理办法了。 B 立马着手了操作。 调大了速度后,磁盘的回收速度是加快了,但机器的负载也上去了,感觉是游走在崩溃的边缘呀!


我心里紧张极了,但也只能期待老天爷保佑了!


后来,我每5分钟一个电话,询问最新的情况,所幸,到了 00 : 20 分后,朋友圈的写入量降了下来,总算得救了。


我们几个同学喝了些啤酒后,觉得肚子有点饿,提议去吃夜宵。


打车走了 10 公里左右,去到了一个港式茶餐厅。 下了车,我们进入餐厅里面坐定,我又拿起手机,跟运维同学 B 详细核对了各个数据和机器的表现,才最终安定下来。


准备开吃的时候,我同学说,“你从出来到现在,打了快十个电话了,有那么忙吗? 今晚是跨年夜呀! ”  “唉,没办法呀,遇到故障,总要处理的! 不过现在已经搞定了,来,以茶代酒,我们干一杯吧! 新年快乐!


那晚,虽然一路都在处理故障,不过最后总也算是跨年了。


这种苦逼的事情,在后面还时有发生,不过随着系统建设的完善,发生的次数也越来越少了。


后来,我们总结了那次的故障:


1. 系统可以不完善,但需要有完备的故障处理预案


我们当时的系统确实还不够完善,因为建设时间不够。 不过当时也存在故障处理预案不够完备的问题,导致最后要赌运气。 后来,就这块,我们也制定了更完备的处理预案。


2. 一定要安排好备份负责人







请到「今天看啥」查看全文