资源管理

数据库的系统资源(CPU资源、内存资源、IO资源和存储资源)是有限的,GaussDB(DWS)在同时运行多种类型的业务(如数据加载、批量分析、实时查询等)时,各类型业务之间可能会竞争资源,从而出现资源性能瓶颈,导致吞吐量下降,造成整体的查询性能低下。那么对系统的资源进行合理的分配,能避免产生资源的不合理占用而导致的系统运行效率下降或者系统运行问题。

GaussDB(DWS)提供了资源管理功能,用户可以根据自身业务将资源按需划分成不同的资源池,不同资源池之间资源互相隔离。再通过关联数据库用户将其关联至不同的资源池,用户SQL查询时将根据“用户-资源池”的关联关系将查询转至资源池中执行。通过指定资源池上可并行运行的查询数、单查询内存上限以及资源池可使用的内存和CPU资源,从而实现对不同业务之间的资源限制和隔离,满足数据库混合负载需求,保证执行查询时有充足的系统资源,确保查询性能。

资源管理基本概念

GaussDB(DWS)的资源管理根据系统资源管控类型可分为:计算资源管理,存储空间管理资及源管理计划。


名词
说明

计算资源管理


主要由资源池功能实现,对计算资源进行隔离和限制,防止异常SQL查询导致集群级异常,包括:并发管理、内存管理、CPU管理以及异常规则。

存储空间管理

从用户和schema两方面实现对存储空间的管理,防止磁盘满和数据库只读。

资源管理计划

按计划进行资源管理自动配置,应对复杂多变的负载场景,实现更为灵活的资源管理。

GaussDB(DWS)的资源管理根据管控时机可分为:运行前管理和运行中管理。

名词
说明

运行前管理

查询运行前,对查询进行运行前管理,如果资源充足则查询可以运行,否则查询需要排队,等待其他查询释放资源后才能运行。运行前管理包含并发管理和运行前内存管理。

运行中管理

查询执行过程中,对查询使用资源进行管控,防止低质量SQL导致集群异常。运行中管理包含运行中内存管理、CPU管理、空间管理和异常规则。

资源管理功能

  • 并发管理

    并发,即资源池中的最大查询并发数。并发管理作为运行前管理,用于限制查询并发运行的数量,通过限制查询并发数降低资源争抢,保证资源有序高效利用。

    并发管理规则:短查询加速开启,复杂查询受资源池并发控制,简单查询受短查询并发控制;短查询加速关闭,复杂查询和简单查询均受资源池并发控制,短查询并发控制无效。

    并发,即资源池中的最大查询并发数。并发管理作为运行前管理,用于限制查询并发运行的数量,通过限制查询并发数降低资源争抢,保证资源的有序高效利用。

    并发管理规则:短查询加速开启,复杂查询受资源池并发控制,简单查询受短查询并发控制;短查询加速关闭,复杂查询和简单查询均受资源池并发控制,短查询并发控制无效。

  • 内存管理

    内存资源,即资源池所占用的内存百分比。内存管理的目的是为了防止数据库系统占用内存过高导致内存溢出(OOM)和实现资源池之间的内存隔离和限制。

    资源管理从“全局内存管理”和“资源池内存管理”两方面进行内存管理。全局内存管理包含运行前管理和运行中管理;资源池内存管理属于专属限额的管理方式,即资源池分配多少内存就只能使用多少内存。

    内存资源,即资源池所占用的内存百分比。内存管理的目的是为了防止数据库系统占用内存过高导致内存溢出(OOM)和实现资源池之间的内存隔离和限制。

    资源管理从“全局内存管理”和“资源池内存管理”两方面进行内存管理。全局内存管理包含运行前管理和运行中管理;资源池内存管理属于专属限额的管理方式,即资源池分配多少内存就只能使用多少内存。

查询运行前,对查询进行运行前管理,如果资源充足则查询可以运行,否则查询需要排队,等待其他查询释放资源后才能运行。运行前管理包含并发管理和运行前内存管理。
查询运行前,对查询进行运行前管理,如果资源充足则查询可以运行,否则查询需要排队,等待其他查询释放资源后才能运行。运行前管理包含并发管理和运行前内存管理。
  • CPU管理

    DWS利用cgroup进行CPU资源管控,支持两种CPU管理方式:

    CPU共享配额:在CPU系统繁忙的情况下,不同资源池按照共享配额配置分配CPU资源。

    CPU专属限额:限制资源池使用的CPU核数上限,无论CPU系统繁忙或者空闲,该资源池上的作业都无法突破该限额配置。

    DWS利用cgroup进行CPU资源管控,支持两种CPU管理方式:

    CPU共享配额:在CPU系统繁忙的情况下,不同资源池按照共享配额配置分配CPU资源。

    CPU专属限额:限制资源池使用的CPU核数上限,无论CPU系统繁忙或者空闲,该资源池上的作业都无法突破该限额配置。

  • 异常规则

    异常规则用于对资源池中用户执行的作业做异常控制,防止“低质量SQL”长时间占用大量资源,导致其他查询阻塞或性能下降。

    DWS支持的异常规则项包含:阻塞时间,执行所消耗时间,所有DN上CPU总时间,检查倾斜率的时间间隔,所有DN上CPU总时间倾斜率,单DN算子下盘大小及DN平均消耗CPU占比。

    异常规则用于对资源池中用户执行的作业做异常控制,防止“低质量SQL”长时间占用大量资源,导致其他查询阻塞或性能下降。

    DWS支持的异常规则项包含:

    阻塞时间,执行所消耗时间,所有DN上CPU总时间,检查倾斜率的时间间隔,所有DN上CPU总时间倾斜率,单DN算子下盘大小及DN平均消耗CPU占比。

查询执行过程中,对查询使用资源进行管控,防止低质量SQL导致集群异常。运行中管理包含运行中内存管理、CPU管理、空间管理和异常规则。
查询执行过程中,对查询使用资源进行管控,防止低质量SQL导致集群异常。运行中管理包含运行中内存管理、CPU管理、空间管理和异常规则。

资源管理计划

资源管理计划功能是DWS提供的资源管理高级特性,用户可以通过创建资源管理计划,向计划中添加多个时间阶段,并为每个阶段配置不同的资源配比。当启动计划时,计划就会按照配置在不同的时间段自动切换资源配置。如果用户在不同的时间段运行不同的业务,而这些业务又会占用不同比重的资源,使用资源管理计划功能可以很好的帮助用户实现不同时间段的资源配置自动切换。

  • 资源管理计划功能

    资源管理计划功能支持业务资源自动切换。用户可以在控制台上添加资源管理计划,启动资源管理计划,查看资源管理计划执行日志,停止资源管理计划等操作。

    资源管理计划功能支持业务资源自动切换。用户可以在控制台上添加资源管理计划,启动资源管理计划,查看资源管理计划执行日志,停止资源管理计划等操作。

  • 四层负载均衡
    四层负载均衡

    支持TCP协议、UDP协议、QUIC协议的四层负载均衡,满足高性能和大规模并发连接的业务诉求

    支持TCP协议、UDP协议、QUIC协议的四层负载均衡,满足高性能和大规模并发连接的业务诉求

  • 七层负载均衡
    七层负载均衡

    支持HTTP协议和HTTPS协议的七层负载均衡,针对HTTPS协议提供多种加密协议和加密套件,满足灵活安全的业务诉求

    支持HTTP协议和HTTPS协议的七层负载均衡,针对HTTPS协议提供多种加密协议和加密套件,满足灵活安全的业务诉求

  • 资源管理计划阶段

    支持对正在运行的资源管理计划,进行时间阶段上的自定义,可以添加,修改资源管理计划阶段,还可以执行手动切换资源管理计划阶段等操作。使用户配置的资源管理计划按照需求在不同的时间段自动切换资源配置。

    支持对正在运行的资源管理计划,进行时间阶段上的自定义,可以添加,修改资源管理计划阶段,还可以执行手动切换资源管理计划阶段等操作。使用户配置的资源管理计划按照需求在不同的时间段切换。

  • 导入导出资源管理计划

    支持导出及导入资源管理计划,用户可边界的归档并分析资源配置和资源使用情况,并及时调整资源配置。

    支持导出及导入资源管理计划,用户可边界的归档并分析资源配置和资源使用情况,并及时调整资源配置。

  • 四层会话保持
    四层会话保持

    四层(TCP协议、UDP协议)负载均衡通过源IP地址提供会话保持能力

    四层(TCP协议、UDP协议)负载均衡通过源IP地址提供会话保持能力

  • 七层会话保持
    七层会话保持

    七层(HTTP协议、HTTPS协议)负载均衡通过Cookie提供会话保持能力

    七层(HTTP协议、HTTPS协议)负载均衡通过Cookie提供会话保持能力

资源管理最佳实践

资源管理优秀实践

GaussDB(DWS)的资源管理功能,帮助企业客户解决数据分析过程中,多用户查询作业遇到的性能瓶颈,最终实现多用户执行SQL作业互不影响,节省资源消耗。


如何对资源池进行监控

资源池监控页面展示资源池的实时信息和资源池资源消耗的历史信息。用户可以实时查看资源池上的等待作业情况,帮助用户识别资源池上的业务压力。也可以通过熔断查询查看资源池上的熔断规则的触发情况。

资源管理常见问题

资源管理常见问题