【 使用环境 】生产环境 or 测试环境
生产环境
【 OB or 其他组件 】
【 使用版本 】
ob 4.3.1
【问题描述】清晰明确描述问题
业务的日志里面有很多报错 ERROR 4030 (HY000): OB-4030:Over tenant memory limits。
这是当前线上集群的查询结果,当前是用户查询导致的吗?
mysql> SELECT /*+ READ_CONSISTENCY(WEAK),query_timeout(100000000) / TENANT_ID,SVR_IP,
→ round(ACTIVE_SPAN/1024/1024/1024,2) ACTIVE_GB,
→ round(MEMSTORE_USED/1024/1024/1024,2) TOTAL_GB,
→ round(FREEZE_TRIGGER/1024/1024/1024,2) FREEZE_TRIGGER_GB,
→ round(MEMSTORE_USED/FREEZE_TRIGGER100,2) percent_trigger,
→ round(MEMSTORE_LIMIT/1024/1024/1024,2) MEM_LIMIT_GB
→ FROM oceanbase.GV$OB_MEMSTORE
→ WHERE tenant_id >1000 OR TENANT_ID=1
→ ORDER BY tenant_id,TOTAL_GB DESC;
±----------±---------------±----------±---------±------------------±----------------±-------------+
| TENANT_ID | SVR_IP | ACTIVE_GB | TOTAL_GB | FREEZE_TRIGGER_GB | percent_trigger | MEM_LIMIT_GB |
±----------±---------------±----------±---------±------------------±----------------±-------------+
| 1002 | 10.xxx.xx.23 | 22.97 | 49.44 | 10.90 | 453.57 | 49.50 |
| 1002 | 10.xxx.xxx.134 | 24.36 | 49.43 | 10.90 | 453.48 | 49.50 |
| 1002 | 10.xxx.xxx.4 | 25.27 | 49.42 | 10.90 | 453.39 | 49.50 |
±----------±---------------±----------±---------±------------------±----------------±-------------+
3 rows in set (0.05 sec)
mysql>
mysql> SELECT tenant_id,svr_ip,hold module_sum
→ FROM oceanbase.GV$OB_MEMORY
1000 AND hold<>0 A → WHERE tenant_id>1000 AND hold<>0 AND
→ CTX_NAME NOT IN ( ‘OB_KVSTORE_CACHE’,‘OB_MEMSTORE’)
→ GROUP BY tenant_id,svr_ip;
±----------±---------------±-----------+
| tenant_id | svr_ip | module_sum |
±----------±---------------±-----------+
| 1002 | 10.xxx.xxx.134 | 1896546304 |
| 1002 | 10.xxx.xx.23 | 1767538688 |
| 1002 | 10.xxx.xxx.4 | 2291892224 |
±----------±---------------±-----------+
3 rows in set (0.04 sec)
【复现路径】问题出现前后相关操作
【附件及日志】推荐使用OceanBase敏捷诊断工具obdiag收集诊断信息,详情参见链接(右键跳转查看):
【备注】基于 LLM 和开源文档 RAG 的论坛小助手已开放测试,在发帖时输入 [@论坛小助手] 即可召唤小助手,欢迎试用!