资源池创建问题

【 使用环境 】测试环境
【 OB or 其他组件 】OB
【 使用版本 】V4.3.5
【问题描述】

目前我有3台服务器,同属于1个zone,配置相同,分别为内存:768G,CPU:80个,磁盘:1.8T

由于内存与磁盘大小有关,我设置OBserver的最大内存为512G。

那么理论上来说整个集群可用资源为:内存1536G ,cpu240个。

为什么我在创建资源池的时候,使用【内存1536G ,cpu234个】的资源规格创建资源池会有问题呢?cpu资源不够?78*3不正好234吗

6 个赞

ob资源计算不是累加的,且内存需要给系统和服务器预留,充分利用服务器资源可以这样分配,
日志盘log_disk_size一般需要设置为内存3-4倍,集群参数log_disk_size先设置1.6T,然后
unit可以设置为75C500G,pool 里的unit_num=3。这样应该可以

6 个赞

创建的unit规格是单台机器的。你可以在创建租户时候设置unit_num=3代表zone1内三台机器都会有该租户相同规格大小的unit

4 个赞

sys租户应该也占用集群的资源吧。

如上图所示,占用了4个CPU,2G内存。

目前我这3台服务器都属于1个zone。

按照刚才的回答,如果我要最大限度的利用我这3台服务器的资源,那我只能设置规格为【内存:510G(512-2),CPU:74个(78-4)】

# 创建资源规格
CREATE RESOURCE UNIT S4_unit_config
                MEMORY_SIZE = '510G',
                MAX_CPU = 74, MIN_CPU = 1;

# 创建资源池
CREATE RESOURCE POOL mq_pool_01
                UNIT='S4_unit_config', 
                UNIT_NUM=3, 
                ZONE_LIST=('zone1'); 

那这样的话资源会有浪费吧?

3 个赞

不会浪费

3 个赞

这样的大租户场景,sys租户也需要提高资源规格,集群性能与稳定一定程度上也和sys租户有关

4 个赞

还是有点不明白。

比如说上面sys租户使用的是4个CPU,2G内存。

然后我这边新建规格A【内存:510G(512-2),CPU:74个(78-4)】

假设我现在的一个资源池使用了规格A,配置unit_num=3。

因为sys租户的UNIT_COUNT为1,意思是只用了一台OBserver吧?那我这其余两台的4个CPU和2G内存是不是浪费了?

4 个赞

sys租户提高到多少合适呢?有没有一个参考值或者计算方式?

还有,我这边是用的obd web方式配置的,好像不能设置sys租户,只能通过后期命令行的方式去修改吧?

我现在的场景是想随便弄一个业务租户,进行性能测试(TPC-H,TPC-DS)和一些复杂查询,想着尽可能的把资源都利用上。

3 个赞

1、unit_num表示租户用到的资源单元数量,如果3代表三台服务器都用到
2、sys租户建议先调整8C16G unit_num=3,通过sql修改
ALTER RESOURCE TENANT-V4.3.5-OceanBase 数据库文档-分布式数据库使用文档

3 个赞

sys租户可以给个4c 8G。system_memory当前多大建议给个20G

4 个赞

看一看

2 个赞

我的服务器内存是768G,在集群部署的时候设置OBserver最大内存为512G。

按照之前的方法,我现在修改了sys租户的资源:8C16G unit_num=3

我这内存资源为啥还是不够呢?

CREATE RESOURCE UNIT S4_unit_config
                 MEMORY_SIZE = '496G',
                MAX_CPU = 70, MIN_CPU = 1;

CREATE RESOURCE POOL mq_pool_01
                 UNIT='S4_unit_config', 
                 UNIT_NUM=3, 
                 ZONE_LIST=('zone1'); 
ERROR 4733 (HY000): zone 'zone1' resource not enough to hold 3 unit. You can check resource info by views: DBA_OB_UNITS, GV$OB_UNITS, GV$OB_SERVERS.
server '"xxxx:2882"' MEMORY resource not enough

512G - 16G = 496G

应该刚刚好吧?

系统和服务器预留内存不属于这512G里面吧?毕竟内存还剩了256G(768 - 512)

当前系统内存应该是41G。

3 个赞

observer的预占用内存=sys租户+system_memory+其他业务租户

3 个赞

ok。

现在出现了新的问题,磁盘不够。

主要是我还没往数据库写数据,咋一下子就用了1.1T了?

主要是clog比较大。

1 个赞

memory_limit、datafile_size设置没有

我记得单个unit是不能跨server吧

这两个参数应该是自动分配的

通过sql查询两个参数值如下:

很多都是经验吧,学习一下各位大咖的经验分享!!!

select * from gv$ob_servers ;
你的log和数据盘放在一个目录下么。

对 因为只是测试 只有一块1.8T的磁盘