本文分享自华为云社区《【GaussTech速递】技术解读之细粒度资源管控》,作者:GaussDB 数据库。
数据库集群内资源管控与资源隔离一直是企业客户长久以来的诉求。作为一款企业级分布式数据库,华为云GaussDB一直致力于满足企业对大型数据库集群的管理需要。
数据库可管理的资源包括计算资源和存储资源。计算资源涵盖CPU、内存、IO和网络,而存储资源则包括数据存储空间、日志存储空间和临时文件等。
从用户角度来看,资源管控通过设定阈值或优先级限制程序对资源的使用,以保证承诺的服务级别协议,同时实现不同用户间的资源隔离,达成多个租户共享数据库资源的目的。
从系统角度来看,引入资源监控与控制手段可以实现在可控情况下合理利用资源,避免资源耗尽,防止系统停止响应或崩溃等情况。作业优先级可确保作业平稳运行,避免某个作业占用过高资源影响其他作业,同时在资源充裕时最大化资源利用。此外,还能满足外部期望,保证系统资源使用的最大化,并通过作业控制确保作业稳定运行,避免不可控的行为。
为了解决上述目标,华为云GaussDB数据库提供了一种对数据库集群内资源进行细粒度管控的方案——细粒度资源管控。该方案在不同的管控粒度(如用户级、会话级与语句级)和不同的管控维度(CPU、内存与IO)都提供了对应的管控能力。用户可以根据自己业务需求选择合适的管控维度与管控粒度来实现资源管控与资源隔离的目标,满足不同场景的资源控制需求。
CPU管控
内存管控
IO管控
连接数与并发管控
存储空间管控
特性演示
1. 创建控制组:
2. 创建资源池:
3. 创建用户绑定资源池:
通过绘制曲线图可以整理两个用户的CPU使用率,可发现user1与user2的CPU使用率最终会平衡到3比1的状态,符合资源池对应的CGroup控制组里设置的20%与60%的比例,达到了CPU管控的效果。
细粒度资源管控作为多租户的资源隔离的底座,实现资源的精准划分与控制,并解决高负载场景下资源不足而导致集群不可服务的问题。该特性适用于数据隔离不敏感,但对不同业务有资源隔离需求的场景。如果客户对资源隔离和数据隔离都有需求,还可关注即将分享的多租数据库特性哦!
点击关注,第一时间了解华为云新鲜技术~