阿里云rds内存过高是啥原因
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了阿里云rds内存过高是啥原因相关的知识,希望对你有一定的参考价值。
RDS内存和CPU长时间过高的原因很多,SQL执行效率不高、被攻击SQL注入、DDL 语句引起表元数据锁等待都会出现运行时间很长的查询。
-------------------------------------以下内容转自阿里云帮助文档
使用阿里云的DMS > 实例信息 > 实例会话
可以通过 Shift、Ctrl 键选择多个会话,然后通过 “Kill 会话” 按钮来终止相关会话。
2. 通过 Kill 命令终止
可以通过 mysql 命令行工具连接实例,通过 show processlist; 和 kill 命令来终止相关的会话。
Kill 命令后带的参数是 show processlist 命令输出的 Id 列值。
注:
RDS 实例在连接数打满的情况下,是无法通过 DMS 或者 MySQL 命令行工具连接登录实例的。
如果无法通过 DMS 或 MySQL 命令行工具连接,建议先在控制台 参数设置 中将 wait_timeout 参数(单位秒)设置为比较小的值(比如 60),让 RDS 实例主动关闭空闲时间超过 60 秒的连接,以便稍后可以通过 DMS 或者 MySQL 命令行工具连接访问实例。
阿里云RDS报错:Too many connections
在使用虚拟主机过程中,如果应用程序连接mysql的连接数过多,会导致网页程序报如下错误:
Can not connect to MySQL server
Error: Too many connections
此问题的原因是由于程序没有及时释放mysql数据库连接,连接数堆积、变满,导致新的连接无法连接到mysql。
1.查看数据库的最大连接数:
mysql>show variables like ‘%max_connections%‘;
+-------------------------+-----------------+
| Variable_name | Value
+-------------------------+-----------------+
| extra_max_connections | |
| max_connections | 110 |
+-------------------------+-----------------+
共返回 2 行记录,花费 121.61 ms.
2.查看连接数据库IP的连接数:
mysql>select SUBSTRING_INDEX(host,‘:‘,1) as ip , count(*) from information_schema.processlist group by ip;
+----------------+--------------------+
| ip | count(*) |
+----------------+--------------------+
| 110.110.10.110 | 1 |
| 110.110.10.111 | 3 |
| 110.110.10.112 | 2 |
| 110.110.10.113 | 1 |
| 110.110.10.114 | 2 |
| 110.110.10.115 | 10 |
| 110.110.10.116 | 2 |
+----------------+--------------------+
共返回 7 行记录,花费 69.87 ms.
3.查看当前数据库连接状态:
mysql>show full processlist;
4.kill掉ID持续时间很长的连接
mysql>kill 35007306;
以上是关于阿里云rds内存过高是啥原因的主要内容,如果未能解决你的问题,请参考以下文章