欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

《GPDB学习笔记》资源管理

程序员文章站 2024-03-22 10:33:10
...

resource group

资源组(resource group)是资源队列(resource queue)的新设计和重写。

使用

  1. 创建Greenplum数据库cgroups配置文件/etc/cgconfig.d/gpdb.conf。用户必须是超级用户或具有sudo访问权限才能创建此文件:
sudo vi /etc/cgconfig.d/gpdb.conf
  1. 将以下配置信息添加到 /etc/cgconfig.d/gpdb.conf
group gpdb {
     perm {
         task {
             uid = gpadmin;
             gid = gpadmin;
         }
         admin {
             uid = gpadmin;
             gid = gpadmin;
         }
     }
     cpu {
     }
     cpuacct {
     }
     cpuset {
     }
     memory {
     }
} 

此内容配置由gpadmin用户管理的CPU,CPU计算,CPU核心集和内存控制组。GPDB仅将内存控制组用于使用cgroupMEMORY_AUDITOR创建的资源组。

  1. 安装Control Groups,并在每个GPDB节点上启动cgroups服务。
# Redhat/CentOS 7.x
sudo yum install libcgroup-tools
sudo cgconfigparser -l /etc/cgconfig.d/gpdb.conf 

# Redhat/CentOS 6.x
sudo yum install libcgroup-tools
sudo cgconfigparser -l /etc/cgconfig.d/gpdb.conf 

# SuSE 11+ 
sudo zypper install libcgroup-tools
sudo cgconfigparser -l /etc/cgconfig.d/gpdb.conf
  1. 标识节点的cgroup目录安装点
# <cgroup_mount_point>
grep cgroup /proc/mounts | head -n 1 | awk '{print $2}'
/sys/fs/cgroup
  1. 验证是否正确设置了GPDB cgroups配置
# grep cgroup /proc/mounts|head -n 1|awk '{print $2}'|xargs -i ls -l {}/{cpu,cpuacct,cpuset,memory}/|grep -w gpdb|awk '{print $3":"$4}'|uniq
gpadmin:gpadmin

如果这些目录存在且所属用户为gpadmin:gpadmin,则用户gpadmin已成功为Greenplum数据库CPU资源管理配置了cgroup。

  1. 要在系统重新启动时自动重新创建GPDB所需的cgroup层次结构和参数,将系统配置为启用cgroup服务守护程序。
# Redhat/CentOS 7.x/SuSE11+
sudo systemctl enable cgconfig.service
# Redhat/CentOS 6.x
sudo chkconfig cgconfig on

启用资源组

安装GPDB时,默认情况下会启用资源队列。要使用资源组而不是资源队列,必须设置gp_resource_manager服务器配置参数为值"group",重启GPDB生效。

gpconfig -s gp_resource_manager
gpconfig -c gp_resource_manager -v "group"
gpstop
gpstart

启用后,角色提交的任何事务都将定向到分配给该角色的资源组,并受该资源组的并发,内存和CPU限制的约束。同样,外部组件的CPU和内存使用量由为分配给组件的资源组配置的CPU和内存限制控制。
GPDB为名为admin_group和default_group的角色创建两个默认资源组。启用资源组时,将为未明确分配资源组的任何角色分配角色功能的默认组。SUPERUSER角色分配了admin_group,非管理员角色分配了名为default_group的组。

限制类型 admin_group default_group
CONCURRENCY 10 20
CPU_RATE_LIMIT 10 30
CPUSET -1 -1
MEMORY_LIMIT 10 30
MEMORY_SHARED_QUOTA 50 50
MEMORY_SPILL_RATIO 20 20
MEMORY_AUDITOR vmtracker vmtracker
相关标签: greenplum