修改最大连接数

本文介绍如何修改RDS MySQL实例的最大连接数。

背景

为满足高并发连接业务需求,提升实例性能,RDS MySQL实例支持用户修改最大连接数参数。可以在RDS控制台上修改该参数,也可以调用API接口修改该参数。

应用场景

在业务连接数变化较大时,可以根据业务需要调整最大连接数。例如,采用短连接模式的游戏应用,在开通服务或版本更新时,短时间内连接数请求量飙升,此时可以根据业务情况调整最大连接数参数,以满足连接数增加的需求。

前提条件

实例系列满足以下条件:

  • 类型:RDS MySQL

  • 系列:高可用系列或基础系列或集群系列

说明

您可以前往实例基本信息页面查看以上信息。

参数含义

最大连接数参数包含以下两个参数:

  • max_user_connections:用户最大连接数,表示任意一个账号的连接数上限,设置范围为[10~208000]。如果同一个账号的连接数超过上限,系统会报错has more than 'max_user_connections'has exceeded the 'max_user_connections',新的连接将无法建立。

  • max_connections:最大连接数,表示所有账号连接数之和的上限,设置范围为[1~208000]。如果总连接数超出上限,系统会报错too many connections,新的连接将无法建立。

影响

连接占用内存,连接数越大,消耗实例资源就越多,您需谨慎设置。如果max_connections设置过大,容易造成内存溢出。因此,推荐使用实例当前规格默认的最大连接数值,避免因连接数配置超过实际实例的负载承受能力范围,影响实例的稳定性。

注意事项

  • 修改max_connections参数取值后,在RDS控制台实例的参数设置页的运行参数值列显示的值会大于实际设置的值,因为该值包含了管控所需的预留连接数。而在实例的基本信息页展示的最大连接数与设置的值相同。

  • 重启实例时,max_connections参数上限会受open_files_limit参数影响,此时max_connections参数实际运行值为min{(open_files_limit - 810),(用户自定义值或者实例当前规格所推荐的最大连接数+管控预留连接数)}

    open_files_limit的默认值为655350,因此,当max_connections参数设置大于654540(包含管控预留连接数)时,为避免实例重启时max_connections参数受open_files_limit影响,建议您在控制台同时调整open_files_limit参数。open_files_limit参数为静态参数,需要重启实例才能生效。

在控制台修改最大连接数

  1. 访问RDS实例列表,在上方选择地域,单击目标实例ID。

  2. 在左侧导航栏,单击参数设置

  3. 可修改参数页签的max_user_connectionsmax_connections参数的运行参数值列,单击image图标,在弹出的对话框中修改参数值,完成后单击确定

  4. 单击提交参数,在弹出的对话框中,选择生效的时间段,完成后单击确定

    说明

    修改max_user_connectionsmax_connections参数,可以立即生效且不用重启实例。

调用API接口修改最大连接数

请求示例

本示例调用ModifyParameter接口将max_connections和max_user_connections参数修改为2000和500。

http(s)://rds.aliyuncs.com/?Action=ModifyParameter
&DBInstanceId=rm-gs5v9xajylz45****
&Parameters={"max_connections":"2000","max_user_connections":"500"}
&<公共请求参数>

JSON格式返回结果

HTTP/1.1 200 OK
Content-Type:application/json
{
  "RequestId" : "542BB8D6-4268-45CC-A557-B03EFD7AB30A"
  } 

验证修改结果

  1. 访问RDS实例列表,在上方选择地域,单击目标实例ID。

  2. 在左侧导航栏,单击参数设置

  3. 参数修改历史页签内查看修改的最大连接数参数值已生效。

    image

常见问题

  • Q:没有修改最大连接数max_connections前,为什么在RDS控制台实例的参数设置页的运行参数值列显示的值会大于实例实际最大可用连接数?

    A:在RDS控制台实例的参数设置页的运行参数值列显示的值大于实例最大可用连接数的值的部分,用于实例日常稳定性维护。

  • Q:修改max_connections参数生效后,显示的运行参数值为什么会大于实际设置的值?

    A:在RDS控制台实例的参数设置页的运行参数值列显示的值大于自定义最大连接数的部分,用于实例日常稳定性维护。实际可用的最大连接数以实例的基本信息页展示的最大连接数为准