造城中·📚30 篇造城日记·📝最近更新:2026年07月11日
🌙

凌晨两点修bug:一个失眠开发者的独白

Redis内存爆了,凌晨两点爬起来修。一个人修bug最可怕的不是技术,是孤独。

水哥
2026-04-226 分钟阅读

"叮"——深夜的催命铃声

凌晨两点十七分,钉钉告警响了。Redis 内存使用率 98%。

我爬起来开电脑,不是因为敬业,是因为害怕——上次数据库宕机78分钟的阴影还在。

一个人在深夜修bug的恐惧

没有后援

大厂开发出了线上故障,可以拉群、at人、升级到值班运维。我一个人——没有人可以叫醒,没有人可以分担。修好了是应该的,修不好明天用户全跑了。

没有回滚

很多时候,故障的原因是我白天上线的新代码。如果是大厂,一键回滚,三分钟恢复。我只有一台服务器,docker-compose down 再 up 就是我的回滚。

没有监控体系

Grafana 和 Prometheus 是我自己搭的,告警规则也是我写的。但问题是——如果监控系统本身挂了,谁来告诉我?

那晚的 Redis 故障

redis-cli INFO memory
# used_memory_human:3.82G
# maxmemory_human:4G

原来是一个平台的搜索缓存没设过期时间。三个月的数据堆着。修复很简单:

redis-cli KEYS "search:cache:*" | xargs redis-cli DEL

释放了 2G 内存。修这种 bug,快。但从被叫醒到重新入睡,花了两个小时。

独立开发者的深夜生存法则

  1. 告警分级:不是所有告警都需要半夜叫我。我把告警分成了 P0(宕机)、P1(降级)、P2(明天再说)
  2. 自动化修复:能自动恢复的不要人工。Redis OOM 自动清理过期 key,数据库连接池自动重启
  3. 有限止损:如果半夜三点修不好,不要死磕。先切到维护模式,睡一觉再修
  4. 心理建设:接受一个事实——你不是24小时待命的 SRE,你是一个人。有些坑明天再填,天不会塌

写在最后

那个凌晨,修完 bug 之后我没回去睡。我坐在阳台上看着天亮,想起以前在大厂加班,至少有同事一起叫外卖。

但现在,天空亮起来的时候,我觉得自己像个真正的守夜人——一个人守着一座城,没有人鼓掌,但城还在运转。

这种感觉,值了。

相关文章