适用版本
OceanBase 数据库 V2.x、V3.x 版本。
问题描述
OBServer 大量刷 WARN 日志:record concurrent fifoallocator alloc mem failed(total_size=1793,ret=-4013)。
问题原因
业务并发量太高,sql_audit 无法分配内存,会间隔一段时间不停打印这样 warn 日志,不影响正常的请求。
解决方法
调整 OB_SQL_AUDIT_PERCETAGE,增加 sql_audit 的内存上限。
obclient> show variables like '%audit_percentage%';
返回结果如下。
+-------------------------+-------+
| Variable_name | Value |
+-------------------------+-------+
| ob_sql_audit_percentage | 3 |
+-------------------------+-------+
1 row in set (0.032 sec)
obclient> set global ob_sql_audit_percentage=10;
Query OK, 0 rows affected (0.126 sec)
注意
淘汰速度和淘汰间隔时间无法控制,淘汰策略是后台线程定时淘汰。