集群已分配内存大于内存总量

【 使用环境 】生产环境
副本 zone1 Unit规格: CPU(核):28 内存(GiB):37 , 数量1
主机1个,配置: 32c 64g
资源管理页面中:
atlantis租户:28C37G , unit数目:2
已分配内存: 49/29Gib 144%
【 OB or 其他组件 】OB
【 使用版本 】4.2.1.8
【问题描述】
1、集群的内存总量29GB,已分配有42GB,比总量大,导致节点内存使用率几乎100%。
2、重启了集群之后,节点内存释放了使用率下降到12.82%,但是概览页面上内存使用率还是100%。
3、如何调整集群内存总量和已分配的值?我调整了memory_limit的值到35G,但是没有效果。期望节点内存使用率控制在80%以下

【复现路径】创建集群之后很久才发现的,不清楚原因

2 个赞

查询一下这俩
show parameters like’% memory_limit%’;
select * from DBA_OB_UNIT_CONFIGS;

1 个赞

1、ocp-集群-资源管理截图看下
2、先对atl租户规格缩容到20G,然后再调整memory_limit=35G

2 个赞

如截图:


2 个赞

1、
image

2、请问如何对租户的规格缩容?有文档可以参考下吗?

2 个赞

租户缩容你可以直接修改租户的unit即可

2 个赞

OCP是哪个版本?

1 个赞

看集群,你这个是meta集群么? 建议不要在meta集群搭建业务租户及业务测试。meta存在很多限制,该集群是ocp存储元数据对其他业务集群进行监控维护使用的

2 个赞

下面SQL查下

select /*+ READ_CONSISTENCY(WEAK) */
a.zone,
a.svr_ip,
b.status,
cpu_capacity,
cpu_assigned_max,
cpu_capacity-cpu_assigned_max as cpu_free,
round(memory_limit /1024/1024/1024 ,2) as memory_total_gb,
round(mem_capacity /1024/1024/1024 ,2) as mem_capacity,
round((memory_limit-mem_capacity) /1024/1024/1024 ,2) as system_memory_gb,
round(mem_assigned /1024/1024/1024 ,2) as mem_assigned_gb,
round((mem_capacity-mem_assigned) /1024/1024/1024 ,2) as memory_free_gb,
round(log_disk_capacity /1024/1024/1024 ,2) as log_disk_capacity_gb,
round(log_disk_assigned /1024/1024/1024 ,2) as log_disk_assigned_gb,
round((log_disk_capacity-log_disk_assigned) /1024/1024/1024 ,2) as log_disk_free_gb,
round((data_disk_capacity /1024/1024/1024 ),2) as data_disk_gb,
round((data_disk_in_use /1024/1024/1024 ),2) as data_disk_used_gb,
round((data_disk_capacity-data_disk_in_use) /1024/1024/1024 ,2) as data_disk_free_gb
from gv$ob_servers a
join oceanbase.DBA_OB_SERVERS b on a.zone=b.zone\G;
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 个赞

:thinking::thinking::thinking:

有超分配机制

蹲~

调整unit规格到20G,memory_limit到35G之后,概览页还是已分配42/总量29,租户管理容量使用概览显示已分配42
image
ob集群是在我们自己创建的atlantis租户下的


2个sql的输出:
image

你查错了,当前展示异常的应该是哪个61节点的集群。麻烦重新查一下

根据你的sql只是查询到这1条记录。我们把ocp部署在64上,ob集群在61上。
这2张表上分别都只有1条数据

对于 已经调整 Unit大小的 。 OCP还是现实以前值的, 您能 重启下这个observer不 ? 使用ocp进行重启下 ? 测试环境,生产注意下业务

已在ocp页面上重启了atlantis集群,在atlantis集群概览页面和租户页面看内存没啥变化,节点内存使用率是有下降。


都在 61上执行 sql , 再发下 61节点内存使用超过 145% 看下