cgroup配置好后CPU资源隔离就使用cgroup吗

【 使用环境 】生产环境 or 测试环境
【 OB or 其他组件 】OB
【 使用版本 】4.2
【问题描述】在以前版本里OB的cpu隔离是通过线程方式实现的,那后面出来了cgroup隔离,是否只要配置好后cgroup,参数enable_cgroup为true,默认的租户间的资源隔离就采用cgroup实现了吗?就不是线程控制了吗?那 cpu_quota_concurrency这个参数还有用吗?

你好,在ob4.3中仍有相关文档
cpu_quota_concurrency https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000000642052
enable_cgroup https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000000642136
配置 cgroup隔离 https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000000642610
管理员可以在配置 cgroup 目录后,再通过 DBMS_RESOURCE_MANAGER 系统包来控制租户 CPU 和 IOPS 的占用。
DBMS_RESOURCE_MANAGER https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000000643338

1 个赞

cpu_quota_concurrency 用于设置租户的每个 CPU 配额所允许的最大并发数。
可以在配置 cgroup 后,再通过 DBMS_RESOURCE_MANAGER 控制租户 CPU 的最大并发数。

能从什么方面验证我们的集群现在使用的cgroup来做CPU的资源隔离,还是采用原来老版本的线程模式?

由于 CPU 的资源隔离依赖 cgroup,如果需要控制 CPU 的资源隔离,则在开始配置用户级资源隔离前,必须配置 cgroup 目录并开启 cgroup 功能,可以通过查看是否开启了cgroup功能来判断集群现在是否使用的cgroup来做CPU的资源隔离。

1: 只要没开启cgroup,租户间CPU隔离就还是沿用以前的方式吗?
2: 只要开启了cgroup,租户间CPU隔离就使用新的cgroup方式,而不是使用以前的线程方式?
请问是这种逻辑吗?

cgroup只是一个整合的功能,租户间CPU隔离就会通过 DBMS_RESOURCE_MANAGER 系统包来控制租户 CPU 和 IOPS 的占用。
可以参考下这里:OceanBase分布式数据库-海量数据 笔笔算数

如果没有开启cgroup,也可以通过dbms_resource_manager包来控制CPU隔离?

如果没有开启cgroup,租户间CPU隔离是会通过 DBMS_RESOURCE_MANAGER 系统包来控制租户 CPU 和 IOPS 的占用的,还是沿用以前的方式的