一个看起来人畜无害的API接口突然开始疯狂吃内存,从平时的200MB直接飙到了4个G,Pod被OOM Kill了三次。我爬起来排查,翻了半天代码提交记录,发现是前一天下午一个开发同学用Cursor生成的数据处理函数——逻辑没问题,单元测试也过了,但它在处理大批量数据的时候会把整个结果集加载到内...
遇到一个项目,代码仓库是 GitLab 托管的,部署方式嘛……让我说得好听点叫"半自动化"——开发在本地跑完测试,打个 tar 包,scp 传到服务器,然后手动重启服务。出过几次事故之后,组里终于下定决心:搞一套像样的 CI/CD。我选了 Jenkins + Docker 的方案。不是因为它最...
我还记得那天下午,当老板问"我们能把线上应该能跑在 K8s 上吧"时,我才意识到我们不能再靠 Docker Compose 撑下去了。当时我们用 Compose 运行了 3 年的微服务:一个 Node.js API、两个 Python 后台任务、一个 Redis 缓存、PostgreSQL 数...
CPU异常飙升这个问题,说大不大说小不小,有时候就是一个死循环,有时候是一个隐藏很深的GC问题,有时候甚至是一行正则表达式搞的鬼。但不管根因是什么,排查思路其实是有套路的。今天我就把这几年在生产环境中积累的CPU排查经验整理出来,从告警接入到最终定位,全流程走一遍。先搞清楚:CPU到底在忙什么...
上个月我负责的业务线出了一次不大不小的事故,事后复盘发现一个很尴尬的事情:告警其实提前 20 分钟就触发了,但当时值班的同事压根没看到。为什么?因为那天光钉钉群里的告警就有 400 多条,绝大部分是无意义的抖动和重复,大家早就免疫了。这事之后我花了两周把告警体系重新治理了一遍,从每天 500 ...
热爱技术的云计算运维工程师,Python全栈工程师,分享开发经验与生活感悟。
欢迎关注我的微信公众号@运维躬行录,领取海量学习资料