YashanDB配置资源管理

78 阅读5分钟

本文内容来自YashanDB官网,原文内容请见 doc.yashandb.com/yashandb/23…

YashanDB资源管理通过内置高级包DBMS_RESOURCE_MANAGER和相关配置参数提供对物理资源的配置能力。

# 启用资源管理

# 创建资源使用组

调用DBMS_RESOURCE_MANAGER.CREATE_CONSUMER_GROUP创建资源使用组。

# 创建资源计划

调用DBMS_RESOURCE_MANAGER.CREATE_PLAN创建资源计划。

# 创建资源计划指令

调用DBMS_RESOURCE_MANAGER.CREATE_PLAN_DIRECTIVE创建资源计划指令。

# 创建用户映射关系

调用DBMS_RESOURCE_MANAGER.SET_CONSUMER_GROUP_MAPPING创建用户映射关系。

如果对应用户不存在,请先创建用户,具体操作请查阅创建用户

# 修改相关配置参数

  1. 通过yasboot工具修改RESOURCE_MANAGER_PLAN参数,以激活资源计划RESPLAN。

Note:

RESOURCE_MANAGER_PLAN参数只允许使用yasboot cluster config set命令修改。

  1. 连接数据库,检查资源计划是否成功激活,RESOURCE_MANAGER_PLAN参数值为RESPLAN表示成功激活资源计划。

  2. 通过yasboot工具修改RSRC_MODE参数开启内存(MEM)或CPU资源管理功能,随后重启数据库使之生效。

Note:

RSRC_MODE参数只允许使用yasboot cluster config set命令修改。

  1. 重启后连接数据库,检查资源管理功能是否成功开启,RSRC_MODE参数值为ALL表示已成功开启。

通过上述示例成功开启资源管理功能后,使用RESMAN1用户连接数据库时会受到资源使用组LOW_GROUP在资源计划RESPLAN下的指令约束。

# 修改映射关系

如需更改某个用户映射的资源使用组,需先确保新的资源使用组已存在。下述语句仅为示例,具体参数请查阅DBMS_RESOURCE_MANAGER相关介绍。

修改映射关系后,用户新建的会话会归属于新的资源使用组,但已在使用中的会话会继续归属于原有资源使用组直至结束会话。

# 配置Cgroups

使用CPU资源管理前,需要先配置Cgroups。

# Cgroups介绍

Cgroups(Control Groups)是Linux内核提供的一种机制,将一系列的任务及其子任务进行集合(或划分)到不同的分组内,并以此限制、记录和隔离不同分组的资源使用情况。

# Cgroups创建

# 场景一:暂未安装YashanDB
  1. YashanDB单机部署YashanDB分布式部署Step1:生成部署文件中,增加--create-cgroup选项,用于创建cgroup目录。

  2. 执行如下命令,生成具备CPU资源管理功能的部署文件。

部署完成后,会自动在/etc/rc.local文件中增加一行命令,以便在数据库启动后启用CPU资源管理功能。

# 场景二:已安装YashanDB

通过yasboot工具的host cgroup create命令创建cgroup目录,详细参数说明请查阅yasboot host

命令执行完成后需重启数据库才能启用CPU资源管理功能。

# 监控资源使用

# 监控CPU资源使用

YashanDB提供动态视图[VCPUSTAT](https://doc.yashandb.com/yashandb/23.3/zh/CPUSTAT](https://doc.yashandb.com/yashandb/23.3/zh/%E5%8F%82%E8%80%83%E6%89%8B%E5%86%8C/%E7%B3%BB%E7%BB%9F%E8%A7%86%E5%9B%BE/%E5%8A%A8%E6%80%81%E8%A7%86%E5%9B%BE/VCPUSTAT)、[DVCPUSTAT](https://doc.yashandb.com/yashandb/23.3/zh/CPUSTAT](https://doc.yashandb.com/yashandb/23.3/zh/%E5%8F%82%E8%80%83%E6%89%8B%E5%86%8C/%E7%B3%BB%E7%BB%9F%E8%A7%86%E5%9B%BE/%E5%8A%A8%E6%80%81%E8%A7%86%E5%9B%BE/DVCPUSTAT)和[GVCPUSTAT](https://doc.yashandb.com/yashandb/23.3/zh/CPUSTAT](https://doc.yashandb.com/yashandb/23.3/zh/%E5%8F%82%E8%80%83%E6%89%8B%E5%86%8C/%E7%B3%BB%E7%BB%9F%E8%A7%86%E5%9B%BE/%E5%8A%A8%E6%80%81%E8%A7%86%E5%9B%BE/GVCPUSTAT)监控集群上资源使用组的CPU使用情况。

# 监控SPA内存资源使用

YashanDB提供动态视图监控资源使用组和会话的SPA内存使用情况。

# 监控资源使用组的SPA内存使用

YashanDB提供动态视图[VRSRC_CONSUMER_GROUP](https://doc.yashandb.com/yashandb/23.3/zh/RSRC\_CONSUMER\_GROUP](https://doc.yashandb.com/yashandb/23.3/zh/%E5%8F%82%E8%80%83%E6%89%8B%E5%86%8C/%E7%B3%BB%E7%BB%9F%E8%A7%86%E5%9B%BE/%E5%8A%A8%E6%80%81%E8%A7%86%E5%9B%BE/VRSRC_CONSUMER_GROUP)、[DVRSRC_CONSUMER_GROUP](https://doc.yashandb.com/yashandb/23.3/zh/RSRC\_CONSUMER\_GROUP](https://doc.yashandb.com/yashandb/23.3/zh/%E5%8F%82%E8%80%83%E6%89%8B%E5%86%8C/%E7%B3%BB%E7%BB%9F%E8%A7%86%E5%9B%BE/%E5%8A%A8%E6%80%81%E8%A7%86%E5%9B%BE/DVRSRC_CONSUMER_GROUP)和[GVRSRC_CONSUMER_GROUP](https://doc.yashandb.com/yashandb/23.3/zh/RSRC\_CONSUMER\_GROUP](https://doc.yashandb.com/yashandb/23.3/zh/%E5%8F%82%E8%80%83%E6%89%8B%E5%86%8C/%E7%B3%BB%E7%BB%9F%E8%A7%86%E5%9B%BE/%E5%8A%A8%E6%80%81%E8%A7%86%E5%9B%BE/GVRSRC_CONSUMER_GROUP)监控集群上资源使用组的SPA内存使用情况。

# 监控会话的SPA内存使用

YashanDB提供动态视图[VSESSION_SPA](https://doc.yashandb.com/yashandb/23.3/zh/SESSION\_SPA](https://doc.yashandb.com/yashandb/23.3/zh/%E5%8F%82%E8%80%83%E6%89%8B%E5%86%8C/%E7%B3%BB%E7%BB%9F%E8%A7%86%E5%9B%BE/%E5%8A%A8%E6%80%81%E8%A7%86%E5%9B%BE/VSESSION_SPA)、[DVSESSION_SPA](https://doc.yashandb.com/yashandb/23.3/zh/SESSION\_SPA](https://doc.yashandb.com/yashandb/23.3/zh/%E5%8F%82%E8%80%83%E6%89%8B%E5%86%8C/%E7%B3%BB%E7%BB%9F%E8%A7%86%E5%9B%BE/%E5%8A%A8%E6%80%81%E8%A7%86%E5%9B%BE/DVSESSION_SPA)和[GVSESSION_SPA](https://doc.yashandb.com/yashandb/23.3/zh/SESSION\_SPA](https://doc.yashandb.com/yashandb/23.3/zh/%E5%8F%82%E8%80%83%E6%89%8B%E5%86%8C/%E7%B3%BB%E7%BB%9F%E8%A7%86%E5%9B%BE/%E5%8A%A8%E6%80%81%E8%A7%86%E5%9B%BE/GVSESSION_SPA)监控集群上会话的SPA内存使用情况。

# 监控执行重试

分布式部署形态下,可以通过如下语句监控执行的重试情况。

# 监控并行执行资源使用

YashanDB提供动态视图[VPX_RES_MGR](https://doc.yashandb.com/yashandb/23.3/zh/PX\_RES\_MGR](https://doc.yashandb.com/yashandb/23.3/zh/%E5%8F%82%E8%80%83%E6%89%8B%E5%86%8C/%E7%B3%BB%E7%BB%9F%E8%A7%86%E5%9B%BE/%E5%8A%A8%E6%80%81%E8%A7%86%E5%9B%BE/VPX_RES_MGR)、[DVPX_RES_MGR](https://doc.yashandb.com/yashandb/23.3/zh/PX\_RES\_MGR](https://doc.yashandb.com/yashandb/23.3/zh/%E5%8F%82%E8%80%83%E6%89%8B%E5%86%8C/%E7%B3%BB%E7%BB%9F%E8%A7%86%E5%9B%BE/%E5%8A%A8%E6%80%81%E8%A7%86%E5%9B%BE/DVPX_RES_MGR)和[GVPX_RES_MGR](https://doc.yashandb.com/yashandb/23.3/zh/PX\_RES\_MGR](https://doc.yashandb.com/yashandb/23.3/zh/%E5%8F%82%E8%80%83%E6%89%8B%E5%86%8C/%E7%B3%BB%E7%BB%9F%E8%A7%86%E5%9B%BE/%E5%8A%A8%E6%80%81%E8%A7%86%E5%9B%BE/GVPX_RES_MGR)监控集群上资源使用组的并行执行资源使用情况。

# 关闭资源管理

关闭资源管理需要按步骤进行:

  • 如需删除资源使用组,需先删除该资源使用组相关的映射关系和资源计划指令,否则返回错误。
  • 如需删除资源计划,需确保该资源计划不是生效计划且先删除关联到该资源计划的所有资源计划指令,否则返回错误。

# 修改相关配置参数

  1. 通过yasboot工具修改RESOURCE_MANAGER_PLAN参数失效所有资源计划。

  2. 通过yasboot工具修改RSRC_MODE参数关闭资源管理功能并重启数据库,待数据库重启后生效。

# 删除用户映射关系

调用DBMS_RESOURCE_MANAGER.DELETE_CONSUMER_GROUP_MAPPING删除用户映射关系。

Note

  • 删除用户时,该用户的映射关系会被删除。
  • 删除某个用户的映射关系时,该用户会被自动映射至DEFAULT_CONSUMER_GROUP组中。
  • 无法删除系统用户SYS的映射关系。

# 删除资源计划指令

调用DBMS_RESOURCE_MANAGER.DELETE_PLAN_DIRECTIVE删除资源计划指令。

# 删除资源计划

调用DBMS_RESOURCE_MANAGER.DELETE_PLAN删除资源计划。

如果资源计划仍有其它资源计划指令,将返回错误。

# 删除资源使用组

调用DBMS_RESOURCE_MANAGER.DELETE_CONSUMER_GROUP删除资源使用组。

如果资源使用组仍有其它资源使用者,将返回错误。