当前位置: 首页 > 网络应用技术

一篇文章详细介绍了DMS资源池队列阻止警报和原理

时间:2023-03-08 00:00:34 网络应用技术

  本文分享了作者:Codefulture的“ DMS Resource池探索警报和原则”。

  资源池队列阻止警报旨在提前通知用户,以通过某种测试机制来阻止资源池队列以避免影响正常业务。它。本文只是一种检测方法,不是唯一的绝对方法,您还可以以其他方式检测资源池队列的阻塞。

  数据库系统的负载管理和资源管理在整个系统中起着非常重要的作用。

  DWS的负载管理分为两层。第一层是CN的全局并发控制,第二层是对资源池级别的同时控制。通过第一层控制,它将继续向前转到第二个级别的资源池控制,并决定继续继续根据资源池的当前负载资源情况执行或排队。

  DWS并发控制逻辑示意图如下:

  影响集群的资源包括内存,CPU,磁盘I/O和存储空间。GaussDB(DWS)提供了一系列资源负载管理方法。通过集中管理和控制资源,它可以有效避免占据资源,高优先级操作以及用户之间的资源隔离的运营冲突。

  通过上面的简介可以总结:负载管理是解决排队的问题,并且该任务平均可以用于不同的CN或资源库;但是,在实际应用中,该操作是否排队与资源池的资源直接相关;资源管理通过了一些方法来提高资源的利用率。

  资源池是GaussDB(DWS)的负载管理的基本单位。它负责管理业务运营所需的系统资源(包括CPU,I/O和内存),并提供SQL并发控制功能。

  GaussDB(DWS)资源负载管理的核心是资源池。资源池提供了多个属性来控制内存,IO和CPU资源的控制,基于优先调度机制实现资源管理和分发,并向用户业务提供资源负载管理服务。基于资源的资源负载管理范围池包括:并发管理和优先计划。

  在介绍资源池之前,您需要了解对照组的相关概念。集团是一种可以限制Linux内核使用的资源的机制。全名是对照组。Cgroups为每个受控资源定义一个子系统。

  该图是对照组的安装树。从上层分为两个部分,其中一个是高斯DB的资源,其中一些是系统使用的其他过程。我们使用的资源显示在图中。它已安装在高斯B:GaussDBA上,其中一楼分为两个对照组。后端用于保留数据库居民的资源。

  资源负载管理的工作原理显示在图中。

  资源池通过绑定控制组分配了资源分配,并且该操作的优先级与与正常情况相关的资源库中的资源数量有关,我们认为与与资源池相关的更多资源相关使用该作业,优先级就越高,因为操作可以具有更多的资源可执行。如果资源池中资源的比例发生了变化,相应的优先级也将改变,并且可以通过调整调整属性来修改优先级资源池。

  打开资源负载管理功能后,系统会自动创建Default_Pool。当会话或用户未指定关联的资源池时,默认情况下它将与default_pool关联,并且default_pool绑定到DefaultClass:Medive Control Group。相关业务是并行的,并且控制团队可以绑定多个绑定多个。资源池。

  在使用资源池分配系统资源之后,需要在某个资源池上关联操作以实现业务的负载管理。资源池与用户关联后,用户执行的所有操作将自动关联在资源池下方。如果用户不绑定资源池,则任务将进入默认资源池default_pool的等待队列。

  当有多个与对照组关联的资源池时,应该使用哪个资源池来执行任务?如果用户发布了大量作业,但是如果新工作非常紧急,该怎么办?可能有许多类似的问题,那么如何解决上述问题?目前,我们必须使用一种方法:查询带。

  GaussDB(DWS)在队列中基于查询带和优先控制的负载识别。一方面,它提供了更灵活的负载识别方法。它可以根据类型,应用程序名称,脚本名称等识别负载队列。Flexible配置查询频段标识队列;另一方面,实现了队列操作的优先控制。管理员用户可以根据业务场景和操作类别分配更灵活的负载控制和资源控制,以实现更灵活的负载控制和资源控制。

  查询频段的当前支持行为是:呼吸,队列中的优先级。

  query_band支持相关关联的优先级,支持三个优先级:高,高/中/低。同时,将RUSH作为特殊优先级提供,默认优先级为中等。

  队列中排队的三个案例:

  如果不使用查询频段配置业务,或者用户不关联查询频段相关的行为,则操作将使用用户的相关队列和默认情况下的队列的优先级。

  从上面的简介中可以理解,查询频段可以设置资源池中任务执行的顺序,并且优先任务是优先级的。GAO在队列中的优先级队列。

  在操作过程中,如果query_band指定队列,则与query_band关联的队列,否则请使用与用户相关的队列。

  通过上述介绍,我们了解了资源负载管理的基本原理,因此如何确定资源池队列的障碍?影响资源池中运行的因素包括并发,CPU和内存的数量。它也可能是由异常聚类状态引起的。以下我们将从以下两种情况下进行分析。

  在第一种情况下,如果并发或CPU之类的资源不够资源池队列中的操作是动态的。

  在第二种情况下,如果用户发行的作业特别复杂,则操作时间可能是数十分钟,那么资源池队列中的操作始终不变,但是如果在调整操作后优先考虑用户,则优先考虑用户,并在调整了操作的优先级后,将用户优先考虑,然后调整了操作的优先级后,将用户优先考虑,然后调整了操作的优先级后,将用户优先考虑。正常运行,也不能指示资源池被阻止。

  结合上述两种情况,我们结合了资源池队列中操作的状态,以及资源池中不同优先级操作的操作以确定资源池是否被阻止。首先,我们限制了范围默认资源池,因为默认资源池是打开代表系统状态的资源管理功能和系统创建。其次,该任务的资源池执行是异常的,这肯定会导致资源池队列排队的现象,并且在团队的第一个领导者中始终保持不变,并且排队时间增加了;而且,在资源库上运行的所有优先操作都不能正常发出。

  总而言之,在一定时间段内,可以确定集群默认的资源池队列以阻止相同优点操作中的资源池队列。

  资源池队列阻止警报基于原始DMS警报功能。实现过程仍分为数据报告和收集 - >警报判断 - >警察报告。信息收集线程将实时报告资源池中任务状态,以形成原始指标。但是,我们需要判断不同优先任务的排队情况。收集原始指标数据并集成和转移。最后,我们使用集成数据来确定是否发生了资源池障碍。

  图片中的20分钟是默认时间,用户可以根据自定义配置来判断判断时间。

  还有其他方案和解决方案可以参考下面的博客。

  GaussDB(DWS)数据库智能监视系统警报框架已启动!

  GaussDB(DWS)负载管理简介简介和工作队列处理方法

  播放GaussDB(DWS)资源负载管理系列 - DWS的原则资源负载管理

  单击以关注,并首次了解华为云新技术?

  原始:https://juejin.cn/post/7097064053259894814