当集群安装过程对于是否安装cgroup有检查和提示过程,若该阶段没有安装cgroup,并不会影响集群本身功能的使用,因此可以跳过;但相应的资源管理功能对于cgroup需要进行一些初始化的动作也同时会跳过。
后期如果需要在SQL执行过程中对系统资源使用情况进行限制和管理时,通过创建资源池并对cpu,内存,io,磁盘空间等进行限制以达到限制用户对系统资源的使用管控。如:
create resource pool static_p1 (priority=1,cpu_percent=20,max_memory=10240,max_temp_diskspace=20480,max_disk_writeio=1024,max_disk_readio=1024,task_running_timeout=10,task_waiting_timeout=20,max_disk_space=102400) type static;
create resource pool dynamic_p1 (priority=1,cpu_percent=1,max_memory=1300,max_temp_diskspace=2048,max_disk_writeio=10,max_disk_readio=10,task_running_timeout=3600,task_waiting_timeout=3600,max_activetask=1,max_disk_space=10240) type dynamic base on static_p1;
create resource plan res_plan;
create resource directive single_st_prority0(plan_name=‘res_plan’,group_name=‘default_consumer_group’,pool_name=‘dynamic_p1’);
active resource plan res_plan on vc VC1;
由于集群安装前期没有安装和配置cgroup,因此在激活资源计划时,虽然语句执行成功,但发现执行SQL语句并未受控。通过集群控制管理命令gcadmin观察,此时,集群各个节点都有一条ddlevent。该异常的产生,正是因为在激活资源激活过程中,由于找不到对应的cgconfig配置信息而产生。
此时,需要将cgroup安装配置生效后,集群的资源计划方可生效。
安装cgroup工具:yum install libcgroup*
2.手动配置/etc/cgconfig.conf
mount {
cpu = /cgroup/cpu;
cpuacct = /cgroup/cpuacct;
blkio = /cgroup/blkio;
}
group gbase {
perm{
task{
uid = gbase;
gid = gbase;
}
admin{
uid = gbase;
gid = gbase;
}
}
cpu{
}
cpuacct{
}
blkio{
}
}
- 检查cgroup挂载信息
[root@lzs-node-3 ~]# lssubsys -am
cpuset
cpu
cpuacct
memory
devices
freezer
net_cls
blkio
perf_event
hugetlb
pids
net_prio
创建文件夹并进行挂载
mkdir /cgroup
mkdir /cgroup/cpu /cgroup/cpuacct /cgroup/blkio
mount -t cgroup -o cpu cpu /cgroup/cpu
mount -t cgroup -o cpuacct cpuacct /cgroup/cpuacct
mount -t cgroup -o blkio blkio /cgroup/blkio
生成子系统
cgclear
cgconfigparser -l /etc/cgconfig.conf
安装配置完成后,集群会自动将ddlevent恢复正常,资源计划生效。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。