observer服务进程内存超过设置的memory_limits设置阈值

【 使用环境 】生产环境
【 observer】
【 4.3.5 】
【问题描述】observer节点服务进程从60%突增到91%,定位发现是因为单表并发查询(条件无索引导致),导致tmp_block_cache 突增,有什么方法可以限制tmp_block_cache使用大小呢
【复现路径】无

2 个赞

SHOW VARIABLES like ‘version_comment’;
具体发一下 ob的版本号信息

建议创建合适的索引 应该是你的查询导致的 临时文件占用kvcache tmp_block_cache的内存高 后面tmp_block_cache应该有释放吧

1 个赞

持续很长一段时间都不释放

1 个赞

,tmp_block_cache不释放,持续占用,分析一下相当于占用租户unit的70%

1 个赞

其实cache 在租户内是无上限的,所以理论上无论 cache 占多大内存,只要能被 sync wash ,就是符合预期的。
你看看当时的observer.log日志 还有么?
下面的这个信息 在查一下
select * from __all_virtual_kvcache_store_memblock order by ref_count desc limit 10;

1 个赞

1 个赞

observer.log日志 也发一下吧

1 个赞

11.log.tar.gz (327.1 KB)
日志是过滤wash的日志

1 个赞

不要过滤 尽量提供全部的observer.log日志

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;
这个信息 也查一下

observer.rar (3.5 MB)

不过从日志中 确实没有内存问题 这个kv cache里的cache占用其实属正常的现象 如果有其他的cache需要占用更多的话 这个cache可能就会释放一些 应该不会超过你设置的memory_limit的