文章目录
-
- 1、你是否遇到过Too many connections?
- 2、linux的文件句柄数量被限制
1、你是否遇到过Too many connections?
今天要给大家分析另外一个真实的大家都经常会碰到的数据库生产故障,就是数据库无法连接的问题。
大家会看到的异常信息往往是“ERROR 1040(HY000): Too many connections”,这个时候就是说数据库的连接池里已经有太多的连接了,不能再跟你建立新的连接了!
不知道大家是否还记得我们最早讲过的数据库的整体架构原理,
- 数据库自己其实是有一个连接池的;
- 你的每个系统部署在一台机器上的时候,你那台机器上部署的系统实例/服务实例自己也是有一个连接池的;
- 你的系统每个连接Socket都会对应着数据库连接池里的一个连接Socket,这就是TCP网络连接,如下图所示。
所以当数据库告诉你Too many connections的时候,就是说他的连接池的连接已经满了,你业务系统不能跟他建立更多的连接了!
曾经在我们的一个生产案例中,数据