MySQL
CPU紧张或者吃满
一、报警内容
[MYSQL CPU使用率过高]
二、可能影响
- 产生读写延迟,慢日志增多,查询返回慢
- 主从延时
- 无法新建连接
三、问题定位
- 问题1:user% 很高,通常是慢查询日志引起的,可以提单,获取实例的慢查询日志。
- 问题2:io wait% 很高,可能是批量读写数据引起的,需要登录到 MySQL 查看具体的语句。
- 问题3:sys% 很高,一般是并发的线程数太多引起的。
四、处理方式
- 问题1:获取到慢查询日志之后,针对优化SQL,如建索引等;
- 问题2:如果存在大量的 Select 语句:可临时调高 innodb_buffer_pool_size 或者是更换套餐;如果存在大量的 DML 语句:可以临时调整事务提交策略,由于该操作会影响同步的数据一致性,需要提单处理;
- 问题3:建议提单升级规格套餐;
内存使用率过高
一、报警内容
[MYSQL 内存使用率过高]
二、可能影响
- 内存溢出(OOM),实例自动重启;
- SQL 执行效率下降
三、问题定位
- 在申请使用初期,因为数据迁移等原因而发生大规模数据导入
- 通常表现为连接数较高且有较大量的并发查询,业务使用耗费资源的复杂 SQL 语句(如多表 JOIN + ORDER BY / GROUP BY 、存在子查询)等
四、处理方式
- 若发放的实例还未升级规格,建议提单升级规格套餐;
- 停服维护时,提单调整innodb_buffer_pool_size的值或重启数据库实例;
磁盘空间使用率过高
一、报警内容
[MYSQL 磁盘空间不足]
二、可能影响
- 磁盘爆满,数据库无法服务
三、问题定位
- 查看监控
四、处理方式
- 若发放的实例还未升级规格,建议提单升级规格套餐;
- 停服维护时,清理无用的数据;
连接数过多
一、报警内容
[MYSQL 连接数过多]
二、可能影响
- 新建连接无法连上数据库,程序报错
- 连接数过多可能会导致占用大量的内存,导致内存报警甚至 OOM 的发生
三、问题定位
- 提单反馈问题
四、处理方式
- 提单调整最大连接数,同时排查连接数是否突增,及原因;
- 若已提单调高连接数无法解决,建议提单升级规格套餐,规格较小的实例无法承受更高的连接;