4.2.13版本用单机模式,java应用中报No memory or reach tenant memory limit

【 使用环境 】测试环境
【 OB or 其他组件 】OB
【 使用版本 】4.2.13
【问题描述】
java应用报No memory or reach tenant memory limit,设置了ob_sql_work_area_percentage=20也不行
【复现路径】
【附件及日志】
observer.zip (8.0 MB)

你的问题我们已经收到。稍微会给您回复

select a.zone, a.SVR_IP,a.SVR_PORT, 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((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;
看下资源

日志没有No memory or reach tenant memory limit相关的报错信息 需要复现后 提供最新的observer.log 确认下。

observer.zip (6.5 MB)

老师可以尝试调小memstore_limit_percentage、或调大租户内存
以及过滤对应的SQL的traceID、过滤对应的observer日志进一步分析

Table ‘oceanbase.gv$ob_servers’ doesn’t exist

sys租户 oceanbase库下执行

*************************** 1. row ***************************
zone: zone1
SVR_IP: 127.0.0.1
SVR_PORT: 2882
status: ACTIVE
cpu_capacity: 16
cpu_assigned_max: 5
cpu_free: 11
memory_total_gb: 6.00
system_memory_gb: 1.00
mem_assigned_gb: 3.00
memory_free_gb: 2.00
log_disk_capacity_gb: 13.00
log_disk_assigned_gb: 5.00
log_disk_free_gb: 8.00
data_disk_gb: 8.00
data_disk_used_gb: 0.28
data_disk_free_gb: 7.72
1 row in set (0.127 sec)

同样的sql语句在java程序内执行就报错,用obclient客户端登录执行就没问题

看资源分配情况,业务租户是一个2c2G的资源情况,程序单批次插入5W数据,是有可能转储跟不上插入速度的可能,如果磁盘是机械盘,性能可能会更差点。
建议:调大租户的内存,如果是机械盘建议换ssd,且日志盘和数据盘分开挂载。
调大资源方式参看:OceanBase分布式数据库-海量数据 笔笔算数

1 个赞

调大租户内存和cpu可以了,都是经验啊

alter system major freeze; 直接触发合并看看。