在使用 OceanBase 数据库定义资源单元以及资源池时, Root Service 负责分配资源(Unit)。Root Service 在分配 Unit 的时候会根据 resource_hard_limit 来决定内存是否可以超卖 (resource_hard_limit 表示内存超卖的百分比,大于 100 表示允许超卖),Root Service 再具体分配资源的时候还会按照 Unit 本身定义的资源单位来进行分配。 但是在通常情况下,如果资源相对来说比较紧张,系统不同的租户负载可以有控制地交错运行,配置租户时有可能会对 CPU 资源进行超卖。如果 CPU 超卖生效,OceanBase 集群在运行过程中会产生负载过载等情况,那么不同租户间会产生线程竞争 CPU 的现象,直接导致的结果是租户实际业务场景变慢。若是内存配置成超卖场景,虽然在创建租户时租户规格总和可以超过 memory_limit,但实际使用时 OceanBase 数据库的内存使用还是会受到 memory_limit 约束。比如在运行中的租户消耗的内存总和将要超过 memory_limit,租户会报内存超限问题甚至进程直接 OOM。
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




