慢SQL影响系统稳定性。针对慢SQL,MSE数据库治理提供了SQL级别的洞察与防护,您可以根据SQL洞察能力为慢SQL配置流控降级规则保障系统的稳定性。本文介绍针对慢SQL如何设置SQL流量控制与保护。
背景信息
系统中出现慢SQL可能会导致CPU、负载异常和系统资源耗尽等情况。严重的慢SQL发生后可能会拖垮整个数据库,对线上业务产生阻断性的风险。线上生产环境出现慢SQL可能原因如下:
网络速度慢、内存不足、I/O吞吐量小和磁盘空间被占满等硬件原因。
没有索引或者索引失效。
系统数据过多。
在项目初期没有对SQL的性能做好考量。
使用限制
JDBC驱动支持的版本如下:
组件 | 支持驱动版本 |
MySQL JDBC | 5.x/8.x |
Oracle JDBC | 12.x |
操作步骤
登录MSE治理中心控制台,并在顶部菜单栏选择地域。
在左侧导航栏,选择治理中心 > 应用治理。
在应用列表页面,单击目标应用的资源卡片。
在左侧导航栏,单击数据库治理,单击页面的SQL 详情页签可查看应用的QPS、RT和并发数据等情况。
在接口概览页签,单击新增防护规则,然后在新增规则对话框中配置流控、隔离以及数据库读写分离等三种SQL防护规则。
流控规则:为服务接口配置流控规则,让容量范围内的请求通过,多余的请求被拒绝,可以有效保证SQL请求访问的流量控制在系统容量的阈值内。详情请参见配置流控规则。
在新增规则对话框,单击接口流控。
在选择防护场景页面,确认接口名称,单击下一步。
在配置防护规则页面配置相关参数,然后单击下一步,最后单击新增。
隔离规则:当流量近似稳态时,并发线程数=QPS * RT(s),当RT升高,并发线程数升高,代表服务调用出现堆积。采用流量治理提供的服务并发隔离能力,给重要服务调用配置并发线程数限制,防止慢SQL或者不稳定的服务过多挤占正常服务资源。详情请参见配置隔离规则。
在新增规则对话框,单击并发隔离。
在选择防护场景页面,确认接口名称,单击下一步。
在配置防护规则页面配置相关参数,然后单击下一步,最后单击新增。
数据库读写分离规则。
在新增规则对话框,单击数据库读写分离。
配置相关参数,然后单击新建。
配置项
说明
接口类型
选择接口类型为SQL。
接口名称
确认接口名称。
是否需要强一致性保证
如果您对当前接口开启了强一致性保证,MSE会帮您异步校验数据库主从实例的同步状态,保证当前接口的读请求在主从状态一致条件下才会路由至只读实例。
是否开启
读写分离开关,优先级大于应用级别配置。
- 本页导读 (1)