写点什么

掌握把“烂”SQL 牢牢关进笼子里的密钥

  • 2023-07-12
    广东
  • 本文字数:1588 字

    阅读完需:约 5 分钟

掌握把“烂”SQL牢牢关进笼子里的密钥

本文分享自华为云社区《直播回顾 | 掌握把“烂”SQL牢牢关进笼子里的密钥》,作者: 华为云社区精选 。


混合负载场景下,怎样避免“烂”语句对数据库系统的冲击?如何在资源紧张的情况下,让高优先级的作业先行?本期《数仓过载不用愁,资源管理帮分忧》的主题直播中,我们邀请到华为云 EI DTSE 技术布道师周孟韬,针对 GaussDB(DWS)资源管理机制与开发者和伙伴朋友们展开交流互动。通过 5 部分内容帮助开发者快速了解 GaussDB(DWS) 资源管理机制,让数仓过载烦恼不再,把“烂”SQL 牢牢关进笼子里。

资源池的并发管控介绍


基于华为云基础设施架构,GaussDB(DWS)提供标准数仓、实时数仓、IoT 数仓 3 种形态,满足不同的业务诉求。在 GaussDB(DWS)整体架构中,有 4 类资源管控,分别是:并发管控、算力管控、存储空间、资源池。


当前 GaussDB(DWS)的并发支持三种管控模式:


1.global 并发管控:


通过 max_active_statements 参数,约束当前集群支持的 query 并发上限;


2.Simple 语句并发数


某个资源池内,简单语句的并发数上限;


3.复杂作业并发数


某个资源池内,复杂语句的并发数上限。


资源池的算力管控介绍


GaussDB(DWS)提供三种算力管控方式,分别是:内存管控、CPU 管控和网络管控,本次主要介绍内存管控和 CPU 管控两种方式。


内存管控:GaussDB(DWS)为用户提供三种内存管控方式,用户可以根据业务需要,合理设置资源池级别的内存配比。


针对传统内存管理的弊端,GaussDB(DWS)设计实现了内存自适应技术,解除对 work_mem 的依赖,优化器依据统计信息对查询使用内存进行估算;执行器执行 SQL 过程中,如果使用内存超过估算内存即触发下盘;资源管理依据优化器估算的查询内存,对查询进行调度和管控。



CPU 管控:GaussDB(DWS)使用 cgroup 实现了两种 cpu 管控能力,基于 cpu.shares 的共享配额管控和基于 cpuset 的专属限额管控。通过这两种方式,可以灵活地满足用户对于 CPU 资源不同维度的划分方式。


当作业超过资源池最大并发数时会造成资源池排队,短时的排队属于正常现象,但长时间持续排队,资源使用率就会变低。比较常见的是 CCN 排队,通常造成 CCN 排队的,主要是语句的估算内存耗尽导致,因此对于高内存开销的语句,需要通过合理的并发进行管控。


资源池评估方法


资源池的规划始终遵循由高到低来划分资源,优先配比高优先级,然后中优先级、最后低优先级;按照业务的 SLA 的要求


  • 高优先级满足峰值(无抖动、无排队);

  • 中优先级均值满足(可抖动,不报错、不积压);

  • 低优先级允许报错、超时;


可以根据 TOPSql 的 UniqueSql_ID 来进行归一化查询的资源汇总统计,分析不同业务的资源开销和并发诉求。

资源池高阶用法-query_band


资源池的传统用法是用户关联资源池,指定 A 用户进 Resource_pool 1,B 用户进 Resource_pool 2,这样的归属方式要求我们对每一个业务归属非常清晰,实操难度大,会造成用户数无法控制的情况。因此我们还支持出另外一种资源池路由方式---query_band。用户发起的查询根据用户的执行参数先路由到 query_band 再路由到资源池,只需要识别 query_band 的 key 即可,不再关注作业对于用户的归属,降低资源池的规划难度。


资源池空间管控 &算子下盘


GaussDB(DWS)为 MPP 架构,每个 DN 使用率不能超过当前磁盘空间总容量的 90%(单个 DN 达到阈值后,触发集群自我保护机制,也就是只读),因此我们需要尽可能避免数据倾斜,GaussDB(DWS)提供了单语句的空间管控(默认 10%磁盘容量大小,单次插入超过 10%,当前 query 会触发熔断),以及用户和 Schema 空间管控的能力,来很好的帮助用户规划自己的空间资源。


欢迎感兴趣的开发者观看直播回放,了解详细信息。更多关于 GaussDB(DWS)产品技术解析、数仓产品新特性的介绍,请关注 GaussDB(DWS)论坛,技术博文分享、直播安排将第一时间发布在 GaussDB(DWS)论坛。


论坛链接:https://bbs.huaweicloud.com/forum/forum-598-1.html


直播回放链接:https://bbs.huaweicloud.com/live/DTT_live/202306281630.html


点击关注,第一时间了解华为云新鲜技术~

发布于: 刚刚阅读数: 3
用户头像

提供全面深入的云计算技术干货 2020-07-14 加入

生于云,长于云,让开发者成为决定性力量

评论

发布
暂无评论
掌握把“烂”SQL牢牢关进笼子里的密钥_数据库_华为云开发者联盟_InfoQ写作社区