OceanBase数据库是多租户设计的数据库,同一个进程会运行着多个租户的请求,从租户资源划分上可以分为三类,500租户内存、系统租户内存、业务租户内存。
- 500是个特殊的虚拟租户,共享性的、非实体租户消耗的内存都被OceanBase数据库划归500租户。
- 系统租户是OceanBase数据库自动创建的第一个实体租户,管理着集群相关的内部表,这些内部表上的请求触发的内存就划归到了sys租户。
- 业务租户就是集群安装后由DBA创建的跑业务流量的实体租户,这些租户的请求触发的内存就划归租户自己。
视频讲解如下:
OceanBase数据库支持通过参数来设置和管理内存的使用,这里主要关注两个方面的内存参数:OBServer节点总内存和业务租户内存。
(*)OBServer节点总内存
表示OBServer节点所有内存的上限,即所有租户累加不可能超过的上限,由以下两个参数控制:
- memory_limit_percentage :物理机或者容器物理内存的百分比
- memory_limit 内存的绝对数值
# 当memory_limit不为0M时,使用memory_limit作为上限, # 否则使用memory_limit_percentage计算后的值作为上限。
下面展示了这两个参数的相关信息:
ob> show parameters like 'memory_limit%' \G; # 输出的信息如下: *************************** 1. row *************************** zone: zone1 svr_type: observer svr_ip: 192.168.79.10 svr_port: 2882 name: memory_limit_percentage data_type: INT value: 80 info: the size of the memory reserved for internal use (for testing purpose). Range: [10, 95] section: OBSERVER scope: CLUSTER source: DEFAULT edit_level: DYNAMIC_EFFECTIVE default_value: 80 isdefault: 1 *************************** 2. row *************************** zone: zone1 svr_type: observer svr_ip: 192.168.79.10 svr_port: 2882 name: memory_limit data_type: CAPACITY value: 10G info: the size of the memory reserved for internal use (for testing purpose), 0 means follow memory_limit_percentage. Range: 0, [1G,). section: OBSERVER scope: CLUSTER source: DEFAULT edit_level: DYNAMIC_EFFECTIVE default_value: 0M isdefault: 0 2 rows in set (0.014 sec)
通过使用命令obd cluster edit-config <集群名称> 可以修改OBServer节点的总内存大小。
(*)业务租户内存
业务租户内存由租户创建ResourceManager Unit(资源单元)时指定。系统租户可以通过视图查询Resource Unit的规格,例如:
ob> select name,MAX_CPU,MIN_CPU,MEMORY_SIZE,LOG_DISK_SIZE from oceanbase.DBA_OB_UNIT_CONFIGS; # 输出的信息如下: +-----------------+---------+---------+-------------+---------------+ | name | MAX_CPU | MIN_CPU | MEMORY_SIZE | LOG_DISK_SIZE | +-----------------+---------+---------+-------------+---------------+ | sys_unit_config | 1 | 1 | 2147483648 | 2147483648 | | ru1 | 1 | 1 | 2147483648 | 2147483648 | | ru2 | 1 | 1 | 2147483648 | 2147483648 | | ru3 | 1 | 1 | 2147483648 | 2147483648 | +-----------------+---------+---------+-------------+---------------+ 4 rows in set (0.004 sec)