oceanbase租户内存使用完毕的问题

【 使用环境 】 测试环境
【 OB or 其他组件 】
【 使用版本 】 oceanbase 4.3.5_bp3
【问题描述】oceanbase 单独创建的租户内存配置100G,单次加载入库的数据文件在200M左右,持续加载入库运行大约1天多的时间,租户的内存使用比达到85%后,数据几乎无法再次入库。

【复现路径】问题出现前后相关操作
【附件及日志】推荐使用OceanBase敏捷诊断工具obdiag收集诊断信息,详情参见链接(右键跳转查看):

【SOP系列 22 】——故障诊断第一步(自助诊断和诊断信息收集)

“单次加载入库的数据文件在200M左右” 这个什么意思 具体有截图或者是通过什么工具插入数据 还是导入数据文件
obd搭建的ob还是ocp搭建的ob 如果obd搭建 发一下yaml配置文件
使用obd巡检一下环境
obdiag check run
https://www.oceanbase.com/docs/common-obdiag-cn-1000000003607664

学习学习

100G内存都不够,你这是装的社区版还是企业版啊

1 个赞

企业版建议是256G内存以上,你这个八成是社区版吧,但社区版没这么高要求吧。

看描述像是转储有点问题(卡住或者慢),导致MemStore内存达到阈值写入限速了

1 个赞

这都不是内存的问题,应该是数据写入有问题导致的,内存内驻不会很久,而且应该是有算法控制的,怎么会一直这样无限制的吃内存,肯定有问题吧 ~ 蹲大佬~

1 个赞

yaml配置文件和obdiag check 见压缩文件。图是重新创建后数据开始入库,单内存一直持续增长。租户的合并时间参数使用的是默认值。
obdiag-check_yaml.zip (13.7 KB)


针对这种情况,集群创建完毕后,是不是有些默认的参数需要调大才可以避免这种情况

SHOW VARIABLES like ‘version_comment’; 查一下版本号
show parameters where name in (‘memory_limit’,‘memory_limit_percentage’,‘system_memory’,‘log_disk_size’,‘log_disk_percentage’,‘datafile_size’,‘datafile_disk_percentage’);

集群 server 级资源分配情况

select zone,concat(SVR_IP,’:’,SVR_PORT) observer,
cpu_capacity_max cpu_total,cpu_assigned_max cpu_assigned,
cpu_capacity-cpu_assigned_max as cpu_free,
round(memory_limit/1024/1024/1024,2) as memory_total,
round((memory_limit-mem_capacity)/1024/1024/1024,2) as system_memory,
round(mem_assigned/1024/1024/1024,2) as mem_assigned,
round((mem_capacity-mem_assigned)/1024/1024/1024,2) as memory_free,
round(log_disk_capacity/1024/1024/1024,2) as log_disk_capacity,
round(log_disk_assigned/1024/1024/1024,2) as log_disk_assigned,
round((log_disk_capacity-log_disk_assigned)/1024/1024/1024,2) as log_disk_free,
round((data_disk_capacity/1024/1024/1024),2) as data_disk,
round((data_disk_in_use/1024/1024/1024),2) as data_disk_used,
round((data_disk_capacity-data_disk_in_use)/1024/1024/1024,2) as data_disk_free
from oceanbase.gv$ob_servers;

集群租户级资源分配和磁盘使用情况

select a.zone,a.svr_ip,b.tenant_name,b.tenant_type, a.max_cpu, a.min_cpu,
round(a.memory_size/1024/1024/1024,2) memory_size_gb,
round(a.log_disk_size/1024/1024/1024,2) log_disk_size,
round(a.log_disk_in_use/1024/1024/1024,2) log_disk_in_use,
round(a.data_disk_in_use/1024/1024/1024,2) data_disk_in_use
from oceanbase.gv$ob_units a join oceanbase.dba_ob_tenants b on a.tenant_id=b.tenant_id order by b.tenant_name;

收集信息.txt (32.4 KB)
收集的信息见文件。谢谢

你上面的截图是ocp的还是ocp-express查看的 建议先用obdiag巡检一下集群的环境

截图是ocp-express看到的。obdiag已经做过检查,你看看还需要收集哪些信息

具体的信息麻烦提供一下 ocp-express 不建议使用了 建议你搭建一个ocp 到时候在查看一些信息

如果在这样刷积分 我们会给你们禁言的

非常 感谢。我用ocp再做下数据加载测试验证