RDS MySQL 连接数满情况的处理
RDS MySQL 连接数满情况的处理
RDS MySQL 连接数满有2种情况
1. 空闲连接过多

原因:
应用使用长连接模式 - 对于长连接模式(比如Java应用),应用侧应该配置连接池。连接池的初始连接数设置过高,应用启动后建立多个到RDS实例空闲连接。如果出现连接数满(too many connections)不能连接的问题,请检查连接池是否启用了复用连接功能。
应用使用短连接模式 - 对于短连接模式(比如PHP应用),出现大量的空闲连接说明应用没有在查询执行完毕后显式的关闭连接。用户应该检查应用是否在页面查询结束后调用连接关闭方法主动显式关闭了到RDS实例的连接。
解决:
通过DMS或者Kill 命令来终止当前空闲会话,详细步骤请参考: RDS MySQL 如何终止连接
修改应用,长连接模式需要启用连接池的复用功能(建议也启用连接检测功能),具体设置请参考连接池配置文档。
修改应用,短连接模式需要在代码中查询结束后调用关闭连接的方法。
对于非交互模式连接,控制台=》参数设置=》设置 wait_timeout 参数为较小值,wait_timeout 参数控制非交互模式连接的超时时间(单位秒,默认值为 24小时 - 86400秒),当非交互式连接空闲时间超过wait_timeout指定的时间后,RDS实例会主动关闭(断开)连接。

对于交互模式连接,控制台=》参数设置=》设置 interactive_timeout 参数为较小值,interactive_timeout参数控制交互模式连接的超时时间(单位秒,默认值为 3小时 - 7200秒),当交互式连接空闲时间超过wait_timeout指定的时间后,RDS实例会主动关闭(断开)连接。

建议与说明:
在RDS MySQL 实例连接数完全打满的情况下,通过DMS或者其他方式是无法连接实例的;因此对于长连接模式,建议连接池的最大连接数要略小于实例规格的连接数限制,比如保留10个连接给DMS或其他管理操作使用。当发生无法连接的情况时,建议先在控制台修改wait_timeout参数为较小值,促使RDS实例主动关闭空闲时间超过阀值的连接。
通常情况下,应用到RDS实例会采用非交互模式;具体采用哪个模式需要查看应用的连接方式配置,比如 PHP 通过传递 MYSQL_CLIENT_INTERACTIVE 常量给 mysql_connect()函数即可开启连接的交互模式。
RDS MySQL 作为服务器,被动的接收来自应用或客户端的连接,处理应用或客户端提交的查询或命令并返回结果。RDS 实例自身是不会主动发起连接的。
注:在出现大量空闲连接之前,有可能会出现瞬间连接数过多的情况,由于RDS作为服务器被动接收连接,通常情况下是应用SQL未优化导致的问题,因此需要从SQL优化入手来根本解决这个问题。
2. 活动连接过多

原因:
锁等待导致活动连接数增加(包括 InnoDB 锁等待、MyISAM表级锁等待、表元数据锁等待)
CPU使用率高导致活动连接数增加
IOPS使用率高导致活动连接数增加
解决:
InnoDB锁等待处理,请参考:RDS MySQL InnoDB 锁等待和锁等待超时的处理
MyISAM表级锁等待处理,请参考:RDS MySQL MyISAM 表级锁等待的产生和处理
表元数据锁等待,请参考:RDS MySQL 表上 Metadata lock 的产生和处理
CPU 使用率高导致活动连接数增加的处理,请参考:RDS MySQL CPU使用率高情况的原因和解决
IOPS使用率高导致活动连接数增加,请参考:RDS MySQL IOPS 使用率高的原因和处理
如问题还未解决,请联系售后技术支持。
RDS MySQL 连接数满情况的处理的更多相关文章
- 连接数从异常到 300 到 5(RDS MySQL 的一个大坑•后记)
在 <记 RDS MySQL 的一个大坑> 中,我提到遇到 User juxxxxxxxxxx already has more than 'max_user_connections' a ...
- RDS MySQL 空间问题的原因和解决
来源:https://help.aliyun.com/knowledge_detail/41739.html RDS MySQL 空间问题的原因和解决 更新时间:2016-07-22 17:20:14 ...
- 记阿里云 RDS MySQL 的一个大坑
花了一个下午的时间,终于把一个阿里云 RDS MySQL 的一个大坑填上了,解决方法令人匪夷所思!绝对会让各位看官感到大吃一惊,阿里云 RDS MySQL 居然有这样 xx 的大坑! 问题 最近应业务 ...
- 实测:云RDS MySQL性能是自建的1.6倍
1. 摘要 基于之前写的「云厂商 RDS MySQL 怎么选」的文章,为了进一步了解各云厂商在RDS MySQL数据库性能上的差异,本文将对自建MySQL.阿里云.腾讯云.华为云和AWS 的 RDS ...
- RDS MySQL 全文检索相关问题的处理
RDS MySQL 全文检索相关问题 1. RDS MySQL 对全文检索的支持 2. RDS MySQL 全文检索相关参数 3. RDS MySQL 全文检索中文支持 3.1 MyISAM 引擎表 ...
- RDS MySQL InnoDB 锁等待和锁等待超时的处理
https://help.aliyun.com/knowledge_detail/41705.html 1. Innodb 引擎表行锁等待和等待超时发生的场景 2.Innodb 引擎行锁等待情况的处理 ...
- MySQL MySql连接数与线程池
MySql连接数与线程池 by:授客 QQ:1033553122 连接数 1. 查看允许的最大并发连接数 SHOW VARIABLES LIKE 'max_connections'; 2. 修改最 ...
- MySQL连接数超过限制的解决方法
最近网站出现 User 数据库名称 has already more than 'max_user_connections' active connections 的报错,网站瘫痪.有必要研究下这个问 ...
- 如何实现MySQL数据库使用情况的审计
如何实现MySQL数据库使用情况的审计 最佳答案 mysql的审计功能 mysql服务器自身没有提供审计功能,但是我们可以使用init-connect + binlog的方法进行mysql的操 ...
随机推荐
- linux TCP Wrappers
1. TCP Wrapper简介 (出处:http://www.softpanorama.org/Net/Network_security/TCP_wrappers/) (维基百科)TCP Wrapp ...
- git 学习笔记7--branch
分支是git的必杀技. 站点另一个角度,分支是的快照移动有向图,刚好是拓扑排序的一种例子. basic git branch testing #创建分支 git checkout testing #切 ...
- EF框架step by step(7)—Code First DataAnnotations(1)
Data annotation特性是在.NET 3.5中引进的,给ASP.NET web应用中的类提供了一种添加验证的方式.Code First允许你使用代码来建立实体框架模型,同时允许用Data a ...
- ExtJs文件上传(Ext.ux.form.FileUploadField)
Ext.ux.form.FileUploadField = Ext.extend(Ext.form.TextField, { /** * @cfg {String} buttonText The b ...
- UVa 10870 & 矩阵快速幂
题意: 求一个递推式(不好怎么概括..)的函数的值. 即 f(n)=a1f(n-1)+a2f(n-2)+...+adf(n-d); SOL: 根据矩阵乘法的定义我们可以很容易地构造出矩阵,每次乘法即可 ...
- 使用javamail发信过程中的一些问题及解决方法
http://www.blogjava.net/TrampEagle/archive/2006/05/26/48326.html 今天在研究javamail发信的过程中,出现了一些小问题,现总结如下, ...
- HDU1518 Square(DFS,剪枝是关键呀)
Square Time Limit : 10000/5000ms (Java/Other) Memory Limit : 65536/32768K (Java/Other) Total Submi ...
- android 百度地图 通过剪裁图片添加 Marker
初始化百度地图: private void initViews() { mMapView = (MapView) findViewById(R.id.bmapView); mBaiduMap = mM ...
- ACM Greedy Mouse
Greedy Mouse 时间限制:1000 ms | 内存限制:65535 KB 难度:3 描述 A fat mouse prepared M pounds of cat food,read ...
- Bootstrap_让Bootstrap轮播插件carousel支持左右滑动手势的三种方法
Bootstrap 的 carousel.js 插件并没有支持手势. 3种解决方案 : jQuery Mobile (http://jquerymobile.com/download/) $(&quo ...