数仓资源管控理论已掌握,是时候实战了

资源,管控,理论,掌握,时候,实战 · 浏览次数 : 26

小编点评

**数据库运维视图** * **GaussDB**:资源管控工具,提供监控、限制、资源分配等功能。 * **pgxc_stat_activity**:活动信息统计视图,提供对数据库执行计划、会话信息等数据的访问。 * **pgxc_thread_wait_status**:线程等待状态视图,提供对数据库线程状态的监控。 * **pgxc_wlm_session_statistics**:会话统计视图,提供对数据库会话信息的访问。 * **pgxc_respool_resource_history**:资源池历史记录视图,提供对数据库资源池的历史使用记录。 * **pgxc_wlm_user_resource_history**:用户资源历史记录视图,提供对数据库用户维度的资源使用记录。 * **pgxc_respool_resource_history**:资源池历史记录视图,提供对数据库用户维度的资源使用记录。 **资源管控工具** * **监控**:对数据库执行计划、会话信息等数据的监控。 * **限制**:对非核心业务对资源的占用来提高资源利用率。 * **资源分配**:对关键业务和重要查询提供资源保障。 * **隔离**:实现不同用户组或租户之间的资源使用隔离。 **性能调优** * **优化**:对数据库执行计划、会话信息等进行优化。 * **平滑**:针对数据加载和用户查询的周期性高峰,科学分配资源以平滑高峰期压力。

正文

本文分享自华为云社区《直播回顾 | 数仓资源管控理论已掌握,是时候实战了》,作者:胡辣汤 。

混合负载场景下,如何高效运维数据库,防止数据库系统过载?GaussDB(DWS)资源管控为数据库平稳可靠运行提供了哪些助力?本期《数仓专家手把手教您资源管控与运维实战》的主题直播中,我们邀请到华为云GaussDB(DWS)技术布道师吕鹏博,针对GaussDB(DWS) 资源管控的原理和系统运维实践与开发者和伙伴朋友们展开交流互动。

GaussDB(DWS)软件架构及运维挑战

GaussDB(DWS)的核心组件主要有CN、DN及相应辅助组件GDS、OM、CM和GTM。本期直播中,资源管控主要聚焦CN和DN,CN是GaussDB(DWS)的协调节点,负责SQL语句的解析、优化及执行计划的生成。DN是数据的存储节点,负责执行SQL的执行计划,并向CN返回执行结果。例如,业务应用下发了一条SQL语句给GaussDB(DWS)集群,它会先经过负载均衡,随机分布到某一个CN上,然后CN生成解析语句和相应的执行计划,下发给DN执行,等DN执行完以后,会返回给CN,然后从CN返回给用户。

GaussDB(DWS)采用的是shared nothing的一个架构,支持节点扩展,提升GaussDB(DWS)整体集群的一个性能。在数据仓库的使用过程中,也面临一些挑战,比如:同时下发很多SQL语句,导致语句执行资源抢占,出现数据库过载,致使大片SQL执行报错;对于用户而言,SQL语句下发后,执行过程是一个黑箱,无法看到语句执行情况和占用资源情况。因此可以使用资源管控的功能来解决这两个挑战。

cke_142.png

GaussDB(DWS)资源管控功能全景图

GaussDB(DWS)资源管控功能原理介绍

用户下发SQL语句后,先经过负载管理,之后下发到DN上进行作业执行,在执行过程中会受到资源管控,此处资源管控主要包含CPU管控、空间管控等。另外在执行过程中,会有辅助线程进行数据采集,帮助用户采集语句执行过程中实时占用的计算资源,包含CPU、内存、磁盘IO、网络等。同时GaussDB(DWS)提供了一些运维工具,比如TopSQL视图、资源监控视图用来分析定位问题。此外为了防止烂SQL影响集群整体性能,GaussDB(DWS)提供了异常规则这个功能。集群内部默认会有一些异常规则,同时也支持用户自定义设置一些异常规则,比如说执行时长、排队时长的多少,如果超过限制,会把作业停掉或者降级。负载管理会先经过一个全局并发队列,然后再进入GaussDB(DWS)的资源池队列,在这个过程中,负载管理把作业分为短查询和长时查询,短查询亦称为简单查询,长时查询亦称为复杂查询。短查询的功能开启是为了提升用户点查性能,提升运行效率。

负载管控:即查询调度,包含基于并发的查询调度和基于估算内存的查询调度。通过查询调度实现查询的错峰执行,防止并发过高引发资源争抢严重,导致查询堆积。

cke_143.png

CPU管控:GaussDB(DWS)为用户提供CPU管控的方式来调整用户CPU的使用,称为共享配额和专属限额,其中:共享配额是给资源池按照百分比配置一定的权重,共享配额不限制资源池使用的CPU核,当某个CPU满负载时,在该CPU上运行作业的资源池按照权重的比例抢占CPU时间片,其使用场景为CPU资源较少,想让重要的业务抢占更多的CPU资源,促使高优作业优先运行。专属限额,是按照百分比的方式分配CPU核给资源池使用,该资源池上运行的复杂作业只能在分配的CPU上运行,其使用场景为CPU资源比较充足,对业务的影响较敏感,需要关闭资源池短查询加速开关。两种管控方案各有其适用场景,需要具体场景具体分析。

内存管控: GaussDB(DWS)为用户提供两种内存管控方式,用户可以根据业务需要,合理设置资源池级别的内存配比。针对传统内存管理的弊端,GaussDB(DWS)设计实现了内存自适应技术,解除对work_mem的依赖,优化器依据统计信息对查询使用内存进行估算,执行器执行SQL过程中,如果使用内存超过估算内存即触发下盘;资源管理依据优化器估算的查询内存,对查询进行调度和管控。

空间管控:支持多个维度的空间管控能力,包含用户空间管控、Schema空间管控、单SQL空间管控、磁盘空间管控等多维度空间管控能力。

cke_144.png

网络管控:在分布式情况下,网络的优劣对查询性能的影响至关重要,为此,GaussDB(DWS)提出优先级+查分加权轮询DWRR的算法,来管控节点间网络流量。并通过异常规则限制用户查询,防止业务被网络拥塞影响。网络管控可以合理配置网络带宽,平滑数据加载,避免拥塞。识别冗余和低价值数据传输,限制其带宽使用。同时可以为关键查询赋予更高的网络资源优先级。数据仓库的网络流量管控对于优化数据加载,提高查询响应,防止故障都有重要帮助。

cke_145.png

GaussDB(DWS)资源运维工具

GaussDB(DWS)提供了诸多运维工具,提升问题定位和分析的能力,目前已集成了事前、事中、事后等多种运维手段,包含事前的Explain performance分析执行计划,当作业运行后,可以通过pgxc_stat_activity分析活跃会话信息,pgxc_thread_wait_status分析线程等待信息,pgxc_wlm_session_statistics分析正在运行的作业信息等。当作业运行完毕后,也可以通过pgxc_wlm_session_info分析历史语句的执行情况,pgxc_respool_resource_history分析历史资源池的占用信息,pgxc_wlm_user_resource_history分析用户维度的资源使用情况等。

cke_146.png

这些运维视图提供了对数据库内部数据的访问接口,可以获取执行计划、会话信息、性能统计等与运维相关的数据。无需了解复杂的内部存储结构,直接查询视图表即可获得所需信息。查询成本低,不需要每次都全表扫描,提高了访问效率。具有更好的封装性,保护了数据库内部元数据的安全。可以根据需要对返回信息进行过滤,使运维人员更方便地使用。通过join其他视图表,可以获得跨域的综合信息用于分析。一些视图包含了额外的洞察和统计,提供了优化和诊断的依据。使数据库可以被更好地理解、管理和监控。总而言之,数据库运维视图极大地方便了数据库的日常监控、性能调优、故障定位等管理工作,是数据库运维的重要工具。

总体来说,资源管控可以提高资源利用率,保证服务质量,平滑高峰期压力,实现多租户隔离,优化资源分配策略,减少运维工作量,提升用户体验。具体而言:

  • 资源管控可以通过监控和限制非核心业务对资源的占用来提高资源利用率;
  • 为关键业务和重要查询提供资源保障,防止资源不足影响服务质量;
  • 针对数据加载和用户查询的周期性高峰,科学分配资源以平滑高峰期压力;
  • 实现不同用户组或租户之间的资源使用隔离和干扰防护;
  • 通过资源监控及时发现潜在问题并快速响应;
  • 根据实际情况调整资源分配,使资源规划更合理;资源管控降低了数据库调优和问题定位的人工需求,减少了运维工作量;
  • 用户可以直接感知到资源管控带来的系统稳定性提升。

综上所述,良好的资源管控机制可以大幅降低管理数据仓库的人力成本,也提升了用户对数据仓库服务的信任度。

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

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

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

号外!

cke_11043.jpeg

华为将于2023年9月20-22日,在上海世博展览馆和上海世博中心举办第八届华为全联接大会(HUAWEICONNECT 2023)。本次大会以“加速行业智能化”为主题,邀请思想领袖、商业精英、技术专家、合作伙伴、开发者等业界同仁,从商业、产业、生态等方面探讨如何加速行业智能化。

我们诚邀您莅临现场,分享智能化的机遇和挑战,共商智能化的关键举措,体验智能化技术的创新和应用。您可以:

  • 在100+场主题演讲、峰会、论坛中,碰撞加速行业智能化的观点
  • 参观17000平米展区,近距离感受智能化技术在行业中的创新和应用
  • 与技术专家面对面交流,了解最新的解决方案、开发工具并动手实践
  • 与客户和伙伴共寻商机

感谢您一如既往的支持和信赖,我们热忱期待与您在上海见面。

大会官网:https://www.huawei.com/cn/events/huaweiconnect

欢迎关注“华为云开发者联盟”公众号,获取大会议程、精彩活动和前沿干货。

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

与数仓资源管控理论已掌握,是时候实战了相似的内容:

数仓资源管控理论已掌握,是时候实战了

华为云GaussDB(DWS)技术布道师吕鹏博,针对GaussDB(DWS) 资源管控的原理和系统运维实践带来了精彩分享。

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

摘要:本文通过5个部分内容帮助开发者快速了解GaussDB(DWS) 资源管理机制,让数仓过载烦恼不再,把“烂”SQL牢牢关进笼子里。 本文分享自华为云社区《直播回顾 | 掌握把“烂”SQL牢牢关进笼子里的密钥》,作者: 华为云社区精选 。 混合负载场景下,怎样避免“烂”语句对数据库系统的冲击?如何

5个高并发导致数仓资源类报错分析

摘要:集群运行过程中,有时候会执行并发量比较高的业务场景,一些数据库没有为这种高并发作业配置合适的参数,会导致作业大量报错,这篇文章让你玩转并发作业。 本文分享自华为云社区《【玩转PB级数仓GaussDB(DWS)】在线运维 - 高并发导致资源类报错分析解决》,作者:323老四。 集群运行过程中,有

带你认识数仓的监控系统TopSQL

TopSQL为DWS的监控系统,记录DWS中各个作业、算子级别的资源使用数据、耗时数据,包括下盘信息、内存、网络、耗时、警告、基础信息等作业执行的数据。

云享·案例丨打造数智物流底座,华为云DTSE助力物联云仓解锁物流新“速度”

摘要:华为云凭借领先的技术和快速响应的开发者支持服务,助力物联亿达实现云上资源高可用、提升系统安全性与稳定性,为物联亿达提供了扎实的数字化基础。 本文分享自华为云社区《云享·案例丨打造数智物流底座,华为云DTSE助力物联云仓解锁物流新“速度”》,作者:华为云社区精选 。 数字化转型浪潮席卷全球,企业

数仓性能调优:如何进行函数下推

摘要:本文主要描述下函数在满足特征的前提下可以把函数属性定义为下推属性。 本文分享自华为云社区《GaussDB(DWS)性能调优:函数下推》,作者:譡里个檔 。 DWS作为MPP架构的数仓产品,其性能优势主要在分布式计算上。默认情况下,DWS为了保证结果的正确性,自定义函数默认属性是不下推的,这会导

数仓在线运维:如何进行在线增删CN?

摘要:集群运行过程中,根据集群的综合负载和业务接入情况进行分析:增加CN可以适当降低CPU消耗,增大接入连接数,分散CN节点业务压力,根据实际情况来识别是否要增加CN,如果是提升集群容量和扩展比能力,建议进行扩容操作。 本文分享自华为云社区《【玩转PB级数仓GaussDB(DWS)】在线运维-在线增

数仓专家面对面 | 为什么我选择GaussDB(DWS)

摘要:你知道数仓是如何应运而生的吗?你了解数仓未来的发展趋势吗?想知道国内数仓专家的看法吗? 导语 数据仓库的发展一直是备受关注的议题,随着近年来技术的不断演进,数仓也在更新迭代。 你知道数仓是如何应运而生的吗?你了解数仓未来的发展趋势吗?想知道国内数仓专家的看法吗? 今天我们邀请到了华为云数据仓库

【数仓运维实践】关于GaussDB(DWS)单SQL磁盘空间管控

摘要:本文主要讲解数仓运维中遇到单SQL磁盘空间管控问题的解析和方案。 本文分享自华为云社区《GaussDB(DWS)运维 -- 单SQL磁盘空间管控》,作者: 譡里个檔。 【问题描述】 执行部分SQL语句时出现如下报错信息(具体数值可能因为配置有差异),本文针对根因和场景触发场景,确定触发此类问题

数仓如何进行表级控制analyze?

摘要: 介绍如何设置采样大小和表级控制analyze。 本文分享自华为云社区《GaussDB(DWS) 如何表级控制analyze》,作者:leapdb。 一、控制采样大小 【设置全局采样大小】 通过参数default_statistics_target设置全局默认采样大小。 a.default_s