租户Memstore 超限告警如何排查

【 使用环境 】生产环境
【 OB or 其他组件 】OBserver
【 使用版本 】3.2.3
【问题描述】告警提示某租户在某时间内现memstore 超限,默认为85,超限为86.1
【复现路径】
【问题现象及影响】1、排查思路
2、如何确认是租户内存不够还是其它的大事务或者跑批之类的导致瞬间拉高memstore

【附件】

1 个赞

OCP的memstore增长趋势 这个可以参考下,是突增还是平缓增加。

租户的memstore超限的告警,会包括observer的IP,也就是某个observer上的unit的内存资源不足,排除硬盘故障或者性能不好的情况,一般与大事务有关系,一个事务中存在大量的增删改的数据。

排查思路:如果有ocp,通过sql诊断查看增删改相关的慢sql,如果没有ocp,查询gv$sql_audit,通过SVR_IP,SVR_PORT,TENANT_ID等信息,查询该租户在内存超限得observer上得慢sql

1、内存写满参见信息中心:
https://www.oceanbase.com/docs/enterprise-oceanbase-database-cn-10000000000357832
2、查询什么模块占用内存较大:
select a.svr_ip,a.tenant_id,b.tenant_name,a.mod_name,sum(a.hold)/1024/1024 from __all_virtual_memory_info a,__all_tenant b where a.tenant_id=b.tenant_id and a.tenant_id>500 group by a.svr_ip,a.tenant_id,b.tenant_name order by 5 desc ,b.tenant_name limit 10;
其中根据a.tenant_id>500可以换成b.tenant_name=‘test’,查找特定tenant内存使用情况
3、结合楼上通过ocp查看慢SQL进行优化。

写入限速,搜一下就有