接口测试 临时邮箱项目挂了,压测复现问题,贴监控数据

NiMail · 2025年11月20日 · 最后由 Vanessa 回复于 2025年11月21日 · 221 次阅读

情况是这样,监控看到https://www.nimail.cn这个临时邮箱项目挂了,内存占满。
现象就是链接请求超时报错 500,所有的请求都失败。

分析发现在晚上 3 点出现流量波峰,之后就一直有问题。

分析发现 卡在数据库请求上,一般的查询耗时打到几十秒。

然后问题是为什么内存暴涨?

为了研究和复现问题。直接上压测。之前发布过一次 jmeter 压测教程:https://testerhome.com/topics/43010,现在直接使用并改改。
压测发现确实能出现,当接口请求量上来后,内存会呈现持续增长,并打到最后的 100%。然后所有的请求就失败。

具体分析后发现确实是链接数据库问题。然后去看了下数据库,又发现数据库并没有慢查询和资源告警。这就见鬼了。。。

然后 AI 了一下,发现该问题很典型。

标准答案就是:服务的数据库连接池无法支撑大流量,导致链接占满导致新链接无法查库直接等待,所以现象才是 sql 查询很慢,但是 db 没有慢查询和压力;时间长流量大导致数据都压在服务的内存中导致内存积压没有 GC。

别看现在写的没几个字,但是整个排查的过程是很长的,开始只看到内存暴涨,但是暴涨内存原因无法分析,看来看去最后才发现 sql 执行很长这条关键的线索。整个过程下来,感觉自己又变强了。

解决办法就是增加连接池大小,扩容。

不过我这个站现在都是免费的,扩容不起,而且观察也只是偶发的暴涨,懒得搞了。

共收到 1 条回复 时间 点赞

java 项目工具就比较简单了,直接 arthas 看火焰图就能发现问题,python 项目不清楚有什么轻量级工具可以监控内存使用情况

需要 登录 后方可回复, 如果你还没有账号请点击这里 注册