《GPDB学习笔记》资源管理
程序员文章站
2024-03-22 10:33:10
...
resource group
资源组(resource group)是资源队列(resource queue)的新设计和重写。
使用
- 创建Greenplum数据库cgroups配置文件/etc/cgconfig.d/gpdb.conf。用户必须是超级用户或具有sudo访问权限才能创建此文件:
sudo vi /etc/cgconfig.d/gpdb.conf
- 将以下配置信息添加到 /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创建的资源组。
- 安装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
- 标识节点的cgroup目录安装点
# <cgroup_mount_point>
grep cgroup /proc/mounts | head -n 1 | awk '{print $2}'
/sys/fs/cgroup
- 验证是否正确设置了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。
- 要在系统重新启动时自动重新创建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 |
上一篇: 【Problem】存储过程参数名与表列名相同引起的问题
下一篇: 泛型的理解