压测时服务直接崩,报连接池耗尽。
原因:每个请求都新建连接,没有复用。测试时量小看不出来。
改:
- 用连接池,配置最大连接数和空闲超时
- 池大小要匹配数据库承受能力,不是越大越好
- 加监控看池的使用率
另一个坑:连接用完不还。异常分支里没有 finally 释放,泄漏之后池就空了。
这类问题在压测时才暴露,所以上线前一定要压测,而且要看资源使用曲线,不只是看错误率。
主楼- 暂无回复
继续逛逛
压测时服务直接崩,报连接池耗尽。
原因:每个请求都新建连接,没有复用。测试时量小看不出来。
改:
另一个坑:连接用完不还。异常分支里没有 finally 释放,泄漏之后池就空了。
这类问题在压测时才暴露,所以上线前一定要压测,而且要看资源使用曲线,不只是看错误率。