【 使用环境 】测试环境
【 OB or 其他组件 】OB
【 使用版本 】V4.3.5
【问题描述】
目前我有3台服务器,同属于1个zone,配置相同,分别为内存:768G,CPU:80个,磁盘:1.8T
由于内存与磁盘大小有关,我设置OBserver的最大内存为512G。
那么理论上来说整个集群可用资源为:内存1536G ,cpu240个。
为什么我在创建资源池的时候,使用【内存1536G ,cpu234个】的资源规格创建资源池会有问题呢?cpu资源不够?78*3不正好234吗
【 使用环境 】测试环境
【 OB or 其他组件 】OB
【 使用版本 】V4.3.5
【问题描述】
目前我有3台服务器,同属于1个zone,配置相同,分别为内存:768G,CPU:80个,磁盘:1.8T
由于内存与磁盘大小有关,我设置OBserver的最大内存为512G。
那么理论上来说整个集群可用资源为:内存1536G ,cpu240个。
为什么我在创建资源池的时候,使用【内存1536G ,cpu234个】的资源规格创建资源池会有问题呢?cpu资源不够?78*3不正好234吗
ob资源计算不是累加的,且内存需要给系统和服务器预留,充分利用服务器资源可以这样分配,
日志盘log_disk_size一般需要设置为内存3-4倍,集群参数log_disk_size先设置1.6T,然后
unit可以设置为75C500G,pool 里的unit_num=3。这样应该可以
创建的unit规格是单台机器的。你可以在创建租户时候设置unit_num=3代表zone1内三台机器都会有该租户相同规格大小的unit
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');
那这样的话资源会有浪费吧?
不会浪费
这样的大租户场景,sys租户也需要提高资源规格,集群性能与稳定一定程度上也和sys租户有关
还是有点不明白。
比如说上面sys租户使用的是4个CPU,2G内存。
然后我这边新建规格A【内存:510G(512-2),CPU:74个(78-4)】
假设我现在的一个资源池使用了规格A,配置unit_num=3。
因为sys租户的UNIT_COUNT为1,意思是只用了一台OBserver吧?那我这其余两台的4个CPU和2G内存是不是浪费了?
sys租户提高到多少合适呢?有没有一个参考值或者计算方式?
还有,我这边是用的obd web方式配置的,好像不能设置sys租户,只能通过后期命令行的方式去修改吧?
我现在的场景是想随便弄一个业务租户,进行性能测试(TPC-H,TPC-DS)和一些复杂查询,想着尽可能的把资源都利用上。
1、unit_num表示租户用到的资源单元数量,如果3代表三台服务器都用到
2、sys租户建议先调整8C16G unit_num=3,通过sql修改
ALTER RESOURCE TENANT-V4.3.5-OceanBase 数据库文档-分布式数据库使用文档
sys租户可以给个4c 8G。system_memory当前多大建议给个20G
看一看
我的服务器内存是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。
observer的预占用内存=sys租户+system_memory+其他业务租户
memory_limit、datafile_size设置没有
我记得单个unit是不能跨server吧
很多都是经验吧,学习一下各位大咖的经验分享!!!
select * from gv$ob_servers ;
你的log和数据盘放在一个目录下么。
对 因为只是测试 只有一块1.8T的磁盘