OceanBase是如何控制住每个租户使用多少主机的CPU,内存资源的?会不会一个主机上有64核CPU,给租户A分配16核CPU,结果出现A租户使用了110%(17.6核)CPU资源?
3 个赞
OceanBase 通过以下方式控制 CPU 和内存资源的使用:
-
CPU 控制:OceanBase 在创建租户时会指定租户资源池,资源池定义了 CPU 规格,从而限制租户级别的 CPU 使用,实现租户间 CPU 使用的隔离。此外,在最新版本中,OceanBase 内核实现了 cgroup 的隔离来对 CPU 进行有效的控制和限制,但这需要操作系统级别的配置搭配生效。
-
内存控制:OceanBase 采取占据服务器的大部分内存并进行统一管理的方式。虽然内存上限中配置的内存不能全部分配给租户使用,因为每个 OBServer 上租户都会共享部分资源或功能,但系统内部可使用的内存上限可通过
system_memory参数来配置,该参数实际上限制的是租户可使用的内存上限,即memory_limit-system_memory。
关于租户 A 使用 110%(17.6 核)CPU 资源的情况,由于 OceanBase 通过资源池和 cgroup 实现了严格的资源隔离和控制,理论上不应该出现这种情况。如果发生异常,可能是由于配置错误或其他系统问题导致。
具体信息可参考以下文档:
这个得看是否配置超卖没有吧
1 个赞
谢谢回复,学习了
如果配置超卖,是不是就可能会出现租户 A 使用 110%(17.6 核)CPU 资源的情况了?
get
学到了