同一个机房三机器部署三节点OBServer,选择1个zone和3个zone的区别在哪里?

【 测试环境 】
【 OB 】
【 4.2.3.1 】
【问题描述】
1、同一个机房三机器部署三节点OBServer,选择1个zone和3个zone的区别在哪里?

2、我部署了一个 oceanbase/odc:4.2.2 ,web页面时不时的弹出登录失效,而且有时候是刚刚登陆成功后,点别的页面,弹出登录失效

3、我部署了三节点的OBServer,部署完成后,未做任何操作,三个主机的OBServer的CPU一直都居高不下,60~80%,甚至有时候还会超过100%,是什么原因呢?会不会是因为我用obd web安装OB集群时,选择的是mini最小化安装的原因?

2 个赞

问题 1 :
1个zone没有高可用而言,只能事测测一些功能,想要故障高可用就要选择少3个zone
问题 3:
你好,在cpu高的时候用obdiag收集点信息看看?
参考博文:OceanBase 社区
感觉应该事cdc 登录会话超时时间

2 个赞

1、同一个机房三机器部署三节点OBServer,选择1个zone和3个zone的区别在哪里?
区别:选择1个zone是单机模式,选择3个zone是分布式模式
2.我部署了一个 oceanbase/odc:4.2.2 ,web页面时不时的弹出登录失效,而且有时候是刚刚登陆成功后,点别的页面,弹出登录失效
请提供下截图,日志
3.我部署了三节点的OBServer,部署完成后,未做任何操作,三个主机的OBServer的CPU一直都居高不下,60~80%,甚至有时候还会超过100%,是什么原因呢?会不会是因为我用obd web安装OB集群时,选择的是mini最小化安装的原因?
请提供下服务器配置,及租户资源配置,查询租户资源配置的SQL如下
SELECT c.TENANT_ID, e.TENANT_NAME, concat(c.NAME, ': ', d.NAME)pool:conf,concat(c.UNIT_COUNT, ’ unit: ', d.min_cpu, ‘C/’, ROUND(d.MEMORY_SIZE/1024/1024/1024,0), “G”) unit_info FROM DBA_OB_RESOURCE_POOLS c, DBA_OB_UNIT_CONFIGS d, DBA_OB_TENANTS e WHERE c.UNIT_CONFIG_ID=d.UNIT_CONFIG_ID AND c.TENANT_ID=e.TENANT_ID AND c.TENANT_ID>1000 ORDER BY c.TENANT_ID;

2 个赞

关于问题3,CPU飙高,租户资源配置SQL结果如下

另外,服务器配置:
节点1: 16核CPU 32G内存
节点2:8核CPU 64G内存
节点3:8核CPU 64G内存
三台服务器上的,当然也还在运行其他生产上的业务。

2 个赞

关于ODC频繁掉线


刚登陆后,又弹出会话过期
[2024-07-11 10:49:33.234][http-nio-8989-exec-1][,][INFO][com.oceanbase.odc.service.iam.auth.CustomAuthenticationSuccessHandler][90]: Authentication successful for /api/v2/iam/login
[2024-07-11 10:49:33.286][http-nio-8989-exec-1][,][INFO][com.oceanbase.odc.service.iam.LoginHistoryService][73]: Login history saved, history=LoginHistoryEntity(id=1000002, organizationId=1, userId=1, accountName=admin, loginTime=2024-07-11T10:49:33.234+08:00, success=true, failedReason=null)
[2024-07-11 10:49:33.409][http-nio-8989-exec-1][,][INFO][com.oceanbase.odc.service.common.util.WebResponseUtils][150]: ODC_REQUEST_TRACE, httpMethod=POST, fullURL=http://120.76.242.101:8989/api/v2/iam/login?currentOrganizationId=1&ignoreError=true, method=JSON, clientAddress=113.246.252.52, userId=Not-Required, result={“data”:“ok”,“durationMillis”:null,“httpStatus”:“OK”,“requestId”:null,“server”:null,“successful”:true,“timestamp”:null,“traceId”:null}, userAgent=Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/126.0.0.0 Safari/537.36
[2024-07-11 10:49:34.082][connection-status-check-4][55d1c185943c47c0,1275aff9054e,SABY1NRIE47ORL08UEBW2][INFO][com.oceanbase.odc.service.connection.ConnectionTesting][162]: Test connection completed, result: TestResult(active=true, args=null, errorCode=null)
[2024-07-11 10:49:37.371][scheduling-1][,][INFO][com.oceanbase.odc.service.connection.ConnectionSessionHistoryService][59]: refresh all session history in db, size=5
[2024-07-11 10:49:46.095][http-nio-8989-exec-1][,][INFO][com.oceanbase.odc.service.iam.auth.CustomInvalidSessionStrategy][55]: Session invalid for uri=/api/v2/flow/flowInstances/
[2024-07-11 10:49:46.096][http-nio-8989-exec-1][,][INFO][com.oceanbase.odc.service.common.util.WebResponseUtils][150]: ODC_REQUEST_TRACE, httpMethod=GET, fullURL=http://120.76.242.101:8989/api/v2/flow/flowInstances/?currentOrganizationId=1&startTime=1720061386028&endTime=1720666186028&page=1&size=30&createdByCurrentUser=true&approveByCurrentUser=false, method=JSON, clientAddress=113.246.252.52, userId=Not-Required, result={“code”:“LoginExpired”,“durationMillis”:null,“error”:{“code”:“LoginExpired”,“details”:[{“code”:“BadRequestException”,“message”:“Invalid Session”,“target”:null}],“message”:“会话已过期,请重新登录”},“httpStatus”:“UNAUTHORIZED”,“message”:“会话已过期,请重新登录”,“requestId”:null,“server”:“node66”,“successful”:false,“timestamp”:null,“traceId”:null}, userAgent=Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/126.0.0.0 Safari/537.36
[2024-07-11 10:49:52.145][http-nio-8989-exec-6][,][INFO][com.oceanbase.odc.service.iam.auth.CustomInvalidSessionStrategy][55]: Session invalid for uri=/api/v2/flow/flowInstances/

2 个赞

1004租户分配的资源较少,可以扩容下,进一步分析建议使用 obdiag一键场景化信息搜集
obdiag gather scene run --scene=observer.cpu_high [High CPU][CPU高]
https://www.oceanbase.com/docs/common-obdiag-cn-1000000000902157

2 个赞

odc登陆问题我联系odc同学看下

2 个赞

ODC是单节点部署,还是多节点部署的?
如果是多节点部署,参考官网部署文档检查一下 ngnix 配置是否正确https://www.oceanbase.com/docs/common-odc-1000000000876732

2 个赞

ODC单节点的

1 个赞

我现在重新使用了三台干净的服务器,
配置如下:
8C 32G内存 100GB磁盘

三台节点CPU飙高的情况依然存在




请问observer进程CPU持续高,是正常现象吗?

1 个赞

正常的,这只是占用了1个左右的cpu,租户负载上来了后会占用更多资源,例如你分配8C,这里可能会出现800%,若没有开启cgroup或者开启了超卖甚至会占用更多cpu,是预期的。

1 个赞

再请问老师,如果1个zone里,部署3个observer节点,ob1 ob2 ob3,
是不是意味着,ob1 ob2 ob3虽然不具备高可用主备切换能力。

但是他们具备备份能力、读写负载均衡能力?

1 个赞

1个zone里3台observer主机,意味着,您在创建租户的时候unit数量最多可以选3个。也就是说可用资源多了。租户的数据会分布在3台observer上,每个机器有一部分数据。

您说的备份能力,如果指的是高可用容灾备份的话,那就要靠多个zone实现。每个zone是一个完整的备份。

1 个赞

那是可以这样理解吗?

如果1个zone中3个Observer,那这3个observer中的数据就只是一份完整的主副本而已,他们就相当于以前的MYSQL一张表,拆成了3份,存到了这3个observer中,每一份数据,都只有一份。

2 个赞

正确,这里的拆分是按分区拆分,如果表不是分区表,那这个表就是一个分区。针对租户而言,不同的表均匀分布在zone内不同的observer上面。

1 个赞