关于 OceanBase 中通过 Cgroup 实现租户资源隔离的描述,以下正确的是?
A. OceanBase 的 Cgroup 资源隔离仅支持 CPU 资源的绑定,内存和 IOPS 的隔离依赖操作系统调度,无法通过 Cgroup 限制。
B. 开启 Cgroup 隔离后,每个 OBServer 上的不同租户会分别挂载到独立的 Cgroup 子目录下,租户内的所有工作线程共享该租户的 CPU 配额。
C. 配置 Cgroup 时必须为每个租户单独设置 cpu.cfs_quota_us 和 memory.limit_in_bytes ,且配置修改后需要重启 OBServer 进程才能生效。
D. Cgroup 隔离只能针对用户的前台查询生效,对于后台的合并、转储等任务不进行资源限制,以保证系统稳定性。
解析 :
OceanBase 支持通过 Linux Cgroup 对租户的 CPU、内存等资源进行隔离。每个 OBServer 节点上,不同租户被分配到不同的 Cgroup 子目录(如 /sys/fs/cgroup/cpu/oceanbase/tenant_id ),租户内的所有线程(包括 SQL 执行、事务处理等)共享该租户的配额。
-
A 错误 :Cgroup 支持 CPU、内存及 IOPS(通过 blkio) 的多维度隔离,并非仅支持 CPU。
-
B 正确 :每个租户独立 Cgroup 目录,租户内所有工作线程(包括多用户会话)共同消耗该租户的 CPU 份额。
-
C 错误 :Cgroup 参数修改支持 动态生效 ,无需重启 OBServer 进程,系统会周期性地重新读取并应用配置。
-
D 错误 :后台任务(如合并、转储)同样受到 Cgroup 限制,避免后台任务挤占前台业务资源。OceanBase 还可通过资源组进一步区分任务类型。