租户间cpu隔离

【 使用环境 】生产环境 or 测试环境
【 OB or 其他组件 】
【 使用版本 】4.2.1社区版
【问题描述】清晰明确描述问题

请问创建租户的资源单元unit时,指定的max_cpu, min_cpu 里 这个 max_cpu不是限制租户能用的最大cpu 数吗,我的集群里只有一个sys租户和一个业务租户,我们的主机节点cpu是32core,我创建租户时指定的max_cpu给了24,负载高的时候后主机cpu使用率在85%左右,后来我修改max_cpu=16, 按理说现在这个租户最多只能使用主机的cpu是16core,但是在业务高峰期,主机节点的cpu使用率一点没降,还是在85%左右,请问这是怎么回事

请提供下如下信息

  1. 所有资源规格信息
    SELECT * FROM DBA_OB_UNIT_CONFIGS;
  2. 所有的资源池信息
    SELECT * FROM DBA_OB_RESOURCE_POOLS;
  3. 租户资源配置
    SELECT c.TENANT_ID, e.TENANT_NAME, concat(c.NAME, ': ', d.NAME)pool:conf,concat(c.UNIT_COUNT, ’ unit: ', d.min_cpu, ‘C/’, ROUND(d.MEMORY_SIZE/1024/1024/1024,0), “G”) unit_info FROM DBA_OB_RESOURCE_POOLS c, DBA_OB_UNIT_CONFIGS d, DBA_OB_TENANTS e WHERE c.UNIT_CONFIG_ID=d.UNIT_CONFIG_ID AND c.TENANT_ID=e.TENANT_ID AND c.TENANT_ID>1000 ORDER BY c.TENANT_ID;
  4. 节点的 Unit 信息
    SELECT * FROM GV$OB_UNITS;

老师,有ocp平台么 可以查看下租户在缩容前后的cpu使用情况做下对比,麻烦贴出来


我们现在是6个节点,每个节点32core,所以一共192core,业务租户是给了18core,18*6=108,sys租户占三个节点,每个节点2core,所以共占6core,业务租户+sys租户一共114core,192-114=78,
调整后情况就是这样的,调整前的没截图了







可以看到在业务高峰期时(我们是跑批)缩容前和缩容后cpu使用率几乎无变化,按我想的是缩容后cpu使用率肯定要降下来的,因为减少了最多能使用的cpu数,现在看好像没限制住


可以看到cpu分配了62%,再加上操作系统自己用的,应该也就是70%左右,不可能到现在85%左右才对,所以怀疑是不是max_cpu没有限制住最大能使用的cpu数

老师麻烦贴一下ocp页面所展示的租户cpu对比

image

image
另,这个租户的cpu使用率监控应该是有问题的,具体可以看下我这篇帖子

https://ask.oceanbase.com/t/topic/35609425

你集群是ocp 安装的吗? ocp 安装的集群, 创建租户时, 都会开启cgroup, 如果是obd 安装的, 并没有开启cgroup

如果你对cpu 隔离要求比较高, 那你需要使用ocp 来创建和管理集群.

不是ocp安装的,也不是obd,我们用rpm包手动安装的,开启cgroup 能实现限制某个租户使用的最大cpu数吗,还是说cgroup只是作用于资源隔离的

https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000000821446

问题找到, 你用rpm 安装的, rpm 安装没有启动cgroup, 所以不是硬隔离, 是软隔离, 根据设置的cpu(默认自动探测)设置线程池的大小, 有的时候是不准


请问woyiji我已经安装了数据库,现在如果想使用cgroup ,我配置好cgroup系统目录之后再重启observer可以吗,还是必须要在安装数据库之前就要配置好cgroup目录

好的,谢谢

我看了下这个cgroup, 这个东西配置级别是租户内资源隔离,并不能在租户间配置资源隔离是吧