当租户内存耗尽并导致业务出现 -4013 报错时,需要确定可能导致内存耗尽的可疑 SQL 语句。本文将介绍如何通过 OBServer 日志来确认这些 SQL 语句。
通过关键字 use too much memory(total_mem_used 过滤 OBServer 租户内存跑满前后 20 分钟左右的日志,确认是否存在占用大量内存的 SQL 语句,示例如下:
grep "use too much memory(total_mem_used" observer.log
[2022-08-01 16:49:39.368909] INFO [SQL] ob_sql.cpp:2112 [59064][2408][YB420A0A34F5-0005E24A21F69BF8] [lt=3] [dc=0] [SQL MEM USAGE] use too much memory(total_mem_used=219437351936, ObString(parse_result.input_sql_len_, parse_result.input_sql_)=xxxxx FROM AE25