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

摘要:本文通过5个部分内容帮助开发者快速了解GaussDB(DWS) 资源管理机制,让数仓过载烦恼不再,把“烂”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

 

 

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

优秀的个人博客,低调大师

微信关注我们

原文链接:https://my.oschina.net/u/4526289/blog/10087947

转载内容版权归作者及来源网站所有!

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。

相关文章

发表评论

资源下载

更多资源
优质分享Android(本站安卓app)

优质分享Android(本站安卓app)

近一个月的开发和优化,本站点的第一个app全新上线。该app采用极致压缩,本体才4.36MB。系统里面做了大量数据访问、缓存优化。方便用户在手机上查看文章。后续会推出HarmonyOS的适配版本。

Apache Tomcat7、8、9(Java Web服务器)

Apache Tomcat7、8、9(Java Web服务器)

Tomcat是Apache 软件基金会(Apache Software Foundation)的Jakarta 项目中的一个核心项目,由Apache、Sun 和其他一些公司及个人共同开发而成。因为Tomcat 技术先进、性能稳定,而且免费,因而深受Java 爱好者的喜爱并得到了部分软件开发商的认可,成为目前比较流行的Web 应用服务器。

Eclipse(集成开发环境)

Eclipse(集成开发环境)

Eclipse 是一个开放源代码的、基于Java的可扩展开发平台。就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境。幸运的是,Eclipse 附带了一个标准的插件集,包括Java开发工具(Java Development Kit,JDK)。

Java Development Kit(Java开发工具)

Java Development Kit(Java开发工具)

JDK是 Java 语言的软件开发工具包,主要用于移动设备、嵌入式设备上的java应用程序。JDK是整个java开发的核心,它包含了JAVA的运行环境(JVM+Java系统类库)和JAVA工具。