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使用率高导致活动连接数增加

解决:

如问题还未解决,请联系售后技术支持

RDS MySQL 连接数满情况的处理的更多相关文章

  1. 连接数从异常到 300 到 5(RDS MySQL 的一个大坑•后记)

    在 <记 RDS MySQL 的一个大坑> 中,我提到遇到 User juxxxxxxxxxx already has more than 'max_user_connections' a ...

  2. RDS MySQL 空间问题的原因和解决

    来源:https://help.aliyun.com/knowledge_detail/41739.html RDS MySQL 空间问题的原因和解决 更新时间:2016-07-22 17:20:14 ...

  3. 记阿里云 RDS MySQL 的一个大坑

    花了一个下午的时间,终于把一个阿里云 RDS MySQL 的一个大坑填上了,解决方法令人匪夷所思!绝对会让各位看官感到大吃一惊,阿里云 RDS MySQL 居然有这样 xx 的大坑! 问题 最近应业务 ...

  4. 实测:云RDS MySQL性能是自建的1.6倍

    1. 摘要 基于之前写的「云厂商 RDS MySQL 怎么选」的文章,为了进一步了解各云厂商在RDS MySQL数据库性能上的差异,本文将对自建MySQL.阿里云.腾讯云.华为云和AWS 的 RDS ...

  5. RDS MySQL 全文检索相关问题的处理

    RDS MySQL 全文检索相关问题 1. RDS MySQL 对全文检索的支持 2. RDS MySQL 全文检索相关参数 3. RDS MySQL 全文检索中文支持 3.1 MyISAM 引擎表 ...

  6. RDS MySQL InnoDB 锁等待和锁等待超时的处理

    https://help.aliyun.com/knowledge_detail/41705.html 1. Innodb 引擎表行锁等待和等待超时发生的场景 2.Innodb 引擎行锁等待情况的处理 ...

  7. MySQL MySql连接数与线程池

    MySql连接数与线程池 by:授客 QQ:1033553122 连接数 1.  查看允许的最大并发连接数 SHOW VARIABLES LIKE 'max_connections'; 2.  修改最 ...

  8. MySQL连接数超过限制的解决方法

    最近网站出现 User 数据库名称 has already more than 'max_user_connections' active connections 的报错,网站瘫痪.有必要研究下这个问 ...

  9. 如何实现MySQL数据库使用情况的审计

    如何实现MySQL数据库使用情况的审计   最佳答案   mysql的审计功能 mysql服务器自身没有提供审计功能,但是我们可以使用init-connect + binlog的方法进行mysql的操 ...

随机推荐

  1. JS实现选择不同select标签option值的验证

    js实现不同select标签option值的验证 功能描述: 选择中文时,匹配中文的正则表达式,选择英文选项是匹配英文的表达式,并且有对应的提示信息. html代码片段: <select id= ...

  2. Guacamole 介绍以及架构

    Guacamole的介绍以及架构 guacd Web应用程序 在Guacamole中与用户打交道的就是Web应用程序. 之前说过,Web应用程序自己不实现任何的远程桌面协议.Web应用程序依赖guac ...

  3. [转载]DW数据仓库建模与ETL的实践技巧

    一.Data仓库的架构 Data仓库(Data Warehouse DW)是为了便于多维分析和多角度展现而将Data按特定的模式进行存储所建立起来的关系型Datcbase,它的Data基于OLTP源S ...

  4. XIII Open Cup named after E.V. Pankratiev. GP of Azov Sea

    A. Freestyle 如果逆序对为$0$,那么先手必败. 因为每次只能翻转长度为$4k+2$和$4k+3$的区间,所以每次操作之后逆序对的奇偶性一定会发生改变. 因此如果逆序对个数为偶数,则先手必 ...

  5. C# 委托和Lambda---基础

    [委托]是一个类可以把一个方法当作另一个方法的参数使用. 声明委托:delegate string 委托名(参数列表);//跟定义方法一样,只是没有方法体,必须使用关键字delegate使用委托的函数 ...

  6. CentOS VirtualBox启动虚拟及报错:VirtualBox error: Kernel driver not installed (rc=1908)

    VirtualBox error: Kernel driver not installed (rc=1908) Hi all, Let me first say that this is my fin ...

  7. C# 窗体位置 Show和ShowDialog(转)

    CenterParent 窗体在其父窗体中居中. CenterScreen 窗体在当前显示窗口中居中,其尺寸在窗体大小中指定. Manual 窗体的位置由 Location 属性确定. Windows ...

  8. (转) 使用Speech SDK 5.1文字转音频

    下载地址: http://www.microsoft.com/en-us/download/details.aspx?id=10121 SeppchSDK51.exe 语音合成引擎 SpeechSDK ...

  9. 1022. Digital Library (30)

    A Digital Library contains millions of books, stored according to their titles, authors, key words o ...

  10. [LintCode] Reverse Nodes in k-Group 每k个一组翻转链表

    Given a linked list, reverse the nodes of a linked list k at a time and return its modified list. If ...