系统执行应用来进行提交查询(包括数据修改操作)时需要大量的逻辑读(逻辑 IO,执行查询所需访问的表的数据行数),所以系统需要消耗大量的 CPU 资源以维护从存储系统读取到内存中的数据一致性。若 MySQL CPU 的利用率长时间处于100%,会严重影响数据库的整体性能,极端情况下可能会出现实例 HANG 住的情况。
当云数据库 MySQL CPU 利用率超过80%时,可能会出现业务响应变慢、超时、无法连接数据库等现象。为避免业务因 CPU 资源不足而受影响,可设置 CPU 使用率 > 80%告警。当接收到告警后,建议从业务场景、应用架构、实例规格等方面来解决,例如:
慢查询数是指一段时间内执行时间超过阈值的 SQL 查询数量。在 MySQL 数据库中,可以通过开启慢查询日志来记录慢查询数。慢查询日志记录了执行时间超过阈值的 SQL 查询,可以通过分析慢查询日志来查找慢查询的原因和优化方案。
通常情况下 SQL 语句的执行效率不够高,会导致大量的请求堆积在云数据库 MySQL 中,例如 SQL 语句没有利用索引或者没有用较佳的索引,或者 QPS 压力超过当前实例的承载上限。大量的请求堆积在云数据库 MySQL 中将会影响数据库的性能。
为避免慢查询数过多影响数据库的性能,在慢查询数超过总查询数的5%-10%,就需要结合 CPU 利用率关注数据库的使用性能了,所以一般设置慢查询数指标的告警,我们建议和实际业务相结合,例如实际总查询数为1000,当慢查询数超过50-100个,就需要特别关注了,所以此时慢查询数可以设置为50,具体以实际场景为准。
若因慢查询数导致数据库性能下降,可以按以下思路解决:
优化 SQL 语句,提升 SQL 语句的执行效率。
提升云数据库 MySQL 的配置。
预设核心指标 Dashboard 面板
为了让用户更快捷、更方便的监控云数据库 MySQL 的资源使用、运行等状况,腾讯云可观测平台将核心指标配置成预设 Dashboard 面板,用户可直接进入Dashboard 页面,无需进行其他配置,即可看到如图所示的云数据库 MySQL 的 Dashboard 预设面板。