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的操 ...
随机推荐
- canvas 3D运动球效果
<!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content ...
- js兼容方法:事件添加|事件绑定|事件监听 addEvent
function addEvent(obj,sEvent,fn){ if(obj.attachEvent){ obj.attachEvent("on"+sEvent,fn); }e ...
- AC自动机+全概率+记忆化DP UVA 11468 Substring
题目传送门 题意:训练指南P217 分析:没有模板串也就是在自动机上走L步,不走到val[u] == v的节点的概率 PS:边读边insert WA了,有毒啊! #include <bits/s ...
- AC自动机 LA 4670 Dominating Patterns
题目传送门 题意:训练指南P216 分析:求出现最多次数的字串,那么对每个字串映射id,cnt记录次数求最大就可以了. #include <bits/stdc++.h> using nam ...
- 模拟 Codeforces Round #288 (Div. 2) A. Pasha and Pixels
题目传送门 /* 模拟水题:给定n*m的空白方格,k次涂色,将(x,y)处的涂成黑色,判断第几次能形成2*2的黑色方格,若不能,输出0 很挫的判断四个方向是否OK */ #include <cs ...
- 类型“System.Windows.Markup.IQueryAmbient”在未被引用的程序集中定义
错误 1 类型"System.Windows.Markup.IQueryAmbient"在未被引用的程序集中定义.必须添加对程序集"System.Xaml, ...
- 【原】iOS学习42即时通信之XMPP(1)
1. 即时通信 1> 概述 即时通讯(Instant Messaging)是目前Internet上最为流行的通讯方式,各种各样的即时通讯软件也层出不穷,服务提供商也提供了越来越丰富的通讯服务功能 ...
- 【原】iOS学习39网络之数据请求
1. HTTP和HTTPS协议 1> URL URL全称是Uniform Resource Locator(统一资源定位符)通过1个URL,能找到互联网上唯一的1个资源 URL就是资源的地址.位 ...
- BZOJ4623 : Styx
$g$是积性函数,可以通过分解质因数在$O(n\log n \log\log n)$的时间内求出. 对于$((A\times B)\times C)\times D$,可以转化为$D\times (C ...
- 比较好用的php函数
eval(); $b = 2;$c = "+";$d = 3;eval("\$a=$b$c$d;"); //字符串相加,取值 (加减乘除都行) str_repl ...