[点晴永久免费OA]一次Python内存泄漏的真实排查经历
当前位置:点晴教程→点晴OA办公管理信息系统
→『 经验分享&问题答疑 』
上周线上服务内存占用一路飙升,从200MB涨到2GB,最后OOM被系统杀了。排查过程挺曲折的,分享一下,希望帮到踩类似坑的朋友。 现象监控告警,服务内存持续增长,重启后从200MB开始,几小时后又到2GB。典型的内存泄漏特征。 排查过程第一步:确认是不是真的泄漏先用 输出显示某个字典对象一直在增长,占用从几MB涨到了几百MB。 第二步:定位问题代码追了一下,发现是一个全局缓存字典没有淘汰机制: 看起来没问题对吧?但我们的场景是用户量很大,每个用户第一次访问就缓存了,之后永远不会清理。随着用户访问越来越多,缓存就越积越大。 第三步:修复最简单的方案,换成LRU缓存: 加了 反思其实这个坑很低级,但当时写代码的时候确实没想到用户量会到这个级别。几个教训:
顺便说一句,如果缓存的数据来自API调用,还要考虑缓存过期的问题。之前我有个项目调大模型API,结果缓存了过期的响应,debug了好久才反应过来。国内用这些API有时候响应慢或者不稳定,我后来换了个中转站,响应速度好了不少,缓存命中率也提上去了。 阅读原文 该文章在 2026/6/3 8:57:06 编辑过 |
关键字查询
相关文章
正在查询... |