GaussDB(DWS)负载管理核心技术解密四: 工作负载计划解密

举报
wangjx_huawei 发表于 2020/12/11 15:55:32 2020/12/11
【摘要】 工作负载计划是多个工作负载队列的自由组合,通过配置负载队列来配置资源池保证系统资源的可控。配置资源池之后能强制用户 发送的请求所消耗的CPU,内存不能超过限制,限制了资源使用量,隔离了失控查询对系统的影响,我们资源管理在一个多用户 高并发的环境控制不同的工作负载对内存CPU 磁盘空间作业个数,使得系统能得到可预测性的控制和保证,减少资源抢占引起的超时等待,防止资源耗尽,资源使用更合理。

工作负载计划的需求来源于客户,客户有多种业务,期望每个时间段的主导业务能分配更多的资源,以支撑业务更好的运行。客户明确希望我们能够提供一种提前配置好各个时间段各个队列的资源配比,到点自动切换各队列资源配比或根据实际情况手动切换的功能,并能够导入导出这种配置以便测试环境测好的配置可以应用到生产环境或者其他集群环境。

工作负载计划概览

1.1 添加工作负载计划

1.2 修改阶段

1.3 查看计划执行日志

1.4 手动切换计划阶段

工作负载计划是多个工作负载队列的自由组合,通过配置负载队列来配置资源池保证系统资源的可控。配置资源池之后能强制用户 发送的请求所消耗的CPU,内存不能超过限制,限制了资源使用量,隔离了失控查询对系统的影响,我们资源管理在一个多用户 高并发的环境控制不同的工作负载对内存CPU 磁盘空间作业个数,使得系统能得到可预测性的控制和保证,减少资源抢占引起的超时等待,防止资源耗尽,资源使用更合理。

内存方面:集群有一个CN会作为中心协调节点(CCN),用于收集和调度作业执行。查询语句到不同的CN之后,由优化器估算作业大小,由CCN进行控制作业释放下发,以及何时唤醒需要运行的作业。设置工作负载队列内存大小,来限制所消耗内存可以保证用户使用不超过负载管理的限制;另外由于linux系统会保护一些系统进程而将其他进程kill 释放资源,这是操作系统的OOM机制,我们负载管理可以自动控制作业使用的内存,保证数据库避免OOM,保护数据库集群可以正常运行;

CPU方面:管控在一个机器上运行多个可能消耗大量资源的程序我们不希望出现某个程序占据了所有的资源导致程序无法正常运行,或者造成系统假死无法维护。在这里我们使用了原生的Cgroup的机制。负载管理提供了一种可以按照权重比率弹性分配CPU时间资源的手段:CPU繁忙的时候保证每个资源池的作业能拿到相对设置CPU大小比例的CPU,CPU空闲时保证CPU的利用率到100%,并且保证CPU的资源隔离;

磁盘管控方面:通过限制用户的使用空间大小来保证集群用户作业的可执行性,执行作业超过空间设置,会取消作业,并且程序会定期对用户空间进行修正,保证页面拿到的用户监控使用磁盘空间大小的准确;

工作负载计划基于工作负载队列对数据仓库作业进行管控,可以让有更好的客户体验,可以灵活定制业务的资源如何去管控 ,实现系统负载的均衡,避免业务争取资源,实现所有作业的和谐共处,达到资源利用最优;

GaussDB(DWS)博文后缀.png


【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。