分布式数据库
Doris
Doris规划
Doris常用命令
Doris Manager
X2Doris数据同步工具
Doris监控
资源限制
DataX
DataX Web
Tidb
Tidb规划
数据库压测
TPC-H
dbsyncer 数据同步
Flink
Dinky
prometheus指标
StreamPark【bug】
本文档使用MrDoc发布
返回首页
-
+
资源限制
2025年5月29日 12:27
admin
#官网 https://doris.incubator.apache.org/zh-CN/docs/admin-manual/workload-management/workload-group#%E4%B8%BA%E7%94%A8%E6%88%B7%E8%AE%BE%E7%BD%AE-workload-group #查看 SHOW PROPERTY FOR 'username'; Key | Value ---------------------------|---------- resource_tags.location | group_a -- 绑定的资源组 cpu_share | 10 -- CPU权重(软隔离) cpu_hard_limit | 0 -- CPU硬限(0表示未设置) memory_limit | 30 -- 内存限制百分比 enable_memory_overcommit | false -- 内存硬隔离 remote_read_bytes_per_second | 104857600 -- IO限制(100MB/s) --- ####查看指定项 SHOW PROPERTY FOR 'username' LIKE 'cpu%'; --- #设置 ####CPU限制 SET PROPERTY FOR 'downuser' 'cpu_resource_limit' = '2'; ####限制并发 SET PROPERTY FOR 'downuser' 'parallel_fragment_exec_instance_num' = '2'; --- #Workload Group ##配置 CGroup 环境 Workload Group 支持对于 CPU,内存,IO 资源的管理,其中对于 CPU 的管理依赖 CGroup 组件;如果期望使用 Workload Group 管理 CPU 资源,那么首先需要进行 CGroup 环境的配置。 --- ####首先确认 BE 所在节点是否已经安装好 CGroup,输出结果中cgroup 代表目前的环境已经安装 CGroup V1,cgroup2 代表目前的环境已安装 CGroup V2,至于具体是哪个版本生效,可以通过下一步确认。 cat /proc/filesystems | grep cgroup nodev cgroup nodev cgroup2 nodev cgroupfs --- ####通过路径名称可以确认目前生效的 CGroup 版本。 如果存在这个路径说明目前生效的是cgroup v1 /sys/fs/cgroup/cpu/ 如果存在这个路径说明目前生效的是cgroup v2 /sys/fs/cgroup/cgroup.controllers --- ####在 CGroup 路径下新建一个名为 doris 的目录,这个目录名用户可以自行指定 如果是cgroup v1就在cpu目录下新建 mkdir /sys/fs/cgroup/cpu/doris 如果是cgroup v2就在直接在cgroup目录下新建 mkdir /sys/fs/cgroup/doris --- ####需要保证 Doris 的 BE 进程对于这个目录有读/写/执行权限 // 如果是CGroup v1,那么命令如下: // 1. 修改这个目录的权限为可读可写可执行 chmod 777 /sys/fs/cgroup/cpu/doris // 如果是CGroup v2,那么命令如下: // 1. 修改这个目录的权限为可读可写可执行 chmod 770 /sys/fs/cgroup/doris // 2. 把这个目录的归属划分给doris的账户 chown -R doris:doris /sys/fs/cgroup/doris --- ####如果目前环境里生效的是 CGroup v2 版本,那么还需要进行以下两步操作。如果是 CGroup v1 那么可以跳过当前步骤。 修改根目录下的 cgroup.procs 文件权限,这是因为 CGroup v2 对于权限管控比较严格,需要具备根目录的 cgroup.procs 文件的写权限才能实现进程在 CGroup 目录之间的移动。 chmod a+w /sys/fs/cgroup/cgroup.procs ####在 CGroup V2 中,cgroup.controllers 保存了当前目录可用的控制器,cgroup.subtree_control 保存了当前目录的子目录的可用控制器。 因此需要确认 doris 目录是否已经启用 cpu 控制器,如果 doris 目录下的 cgroup.controllers 中不包含 cpu,那么说明 cpu 控制器未启用,可以在 doris 目录中执行以下命令, 这个命令是通过修改父级目录的 cgroup.subtree_control 文件使得 doris 目录可以使用 cpu 控制器。 // 预期该命令执行完成之后,可以在 doris 目录下看到 cpu.max 文件,且 cgroup.controllers 的输出包含 cpu。 // 如果该命令执行失败,则说明 doris 目录的父级目录也未启用 cpu 控制器,需要为父级目录启用 cpu 控制器。 echo +cpu > ../cgroup.subtree_control --- ####修改 BE 的配置,指定 cgroup 的路径 如果是Cgroup v1,那么配置路径如下 doris_cgroup_cpu_path = /sys/fs/cgroup/cpu/doris 如果是Cgroup v2,那么配置路径如下 doris_cgroup_cpu_path = /sys/fs/cgroup/doris --- ####重启 BE,在日志(be.INFO)可以看到"add thread xxx to group"的字样代表配置成功 --- ##为用户设置 Workload Group ####在web创建  --- ####授权 GRANT USAGE_PRIV ON WORKLOAD GROUP 'bigquery' TO 'downuser'@'172.16.%.%'; --- ####设置 set property for 'downuser' 'default_workload_group' = 'bigquery' --- ##CPU限制 ####在所有 FE 中打开 CPU 硬限的开关 --- ####1 修改磁盘上fe.conf的配置 experimental_enable_cpu_hard_limit = true ####2 修改内存中的配置 ADMIN SET FRONTEND CONFIG ("enable_cpu_hard_limit" = "true");
分享到: