暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

GaussDB(DWS)资源管理总体概述

db_user 2023-08-14
199

GaussDB(DWS)CPU的资源隔离是通过linux内核中,提供控制组群(CGroups)功能,可为操作系统中所运行任务(进程)的用户定义组群分配资源 -- 比如CPU时间、CPU核数,系统内存。CGroups提供的功能主要包括:限制进程组可以使用的资源数量、进程组的优先级控制、记录进程组已使用的资源数量、进程组隔离及进程组控制等。

Gauss200 OLAP资源管理在设计之初考虑到数据库系统、用户、作业不同维度的隔离性和可配置性,通过控制组的层级特性构造满足数据库场景的模型。如图1所示:

图片

▲图1 Gauss200 OLAP控制组层次模型

GaussDB(DWS)资源管理提供四个维度的层次隔离和控制:

①数据库程序与非数据库程序隔离

每个数据库集群系统在操作系统Cgroup上均含有单一的目录“Gaussdb:user”,其子目录包含该数据库集群管辖的所有程序(线程)。尤其在大数据平台上,通过控制数据库程序使用的资源,可防止数据库程序对其他应用的影响。

②数据库常驻后备线程与执行作业线程隔离

“Backend”Cgroup下承载了数据库的所有常驻后备线程。“Class”Cgroup下承载了数据库中所有执行作业相关的线程。通常“Backend”Cgroup下的常驻后备线程占用资源很少,但AutoVacuum工作线程除外;由于执行AutoVacuum时占用资源很高,单独提供“Vacuum”Cgroup用于控制AutoVacuum工作线程使用的资源,可防止对执行作业的影响。

③数据库多用户之间的隔离

通常数据库管理员创建多个用户(角色)用于执行不同的任务,资源管理为此提供接口,可以新创建属于某用户的控制组,控制组的名称和资源配比由系统管理员用户设定,其父目录为顶层“Class”Cgroup。结合资源池特性,用户、控制组和资源池进行关联,不同用户执行的作业使用不同的资源,实现资源互相隔离。

④策略执行作业和批量拉链作业隔离

根据作业类型不同,在每个用户(角色)的“Class”控制组下面制定两类控制组,其中“Default Workload”类型控制组由用户自定义控制组名称及资源配比,可用于策略执行作业;“Timeshare Workload”类型控制组为每个“Class”控制组下的固定控制组,共含有4个,按照1:2:4:8的资源比例分配,可用于批量拉链作业。

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论