再次,我想说,如果上边两种都排查了,是不是当前版本的资源设置有缺陷?
我看到v7版本的tidb在资源控制方面加强了很多,号称里程碑:v7-基于资源组的资源管控特性
对 TiDB 具有里程碑的意义-多租户基础
三种方式绑定到资源组:通过 CREATE USER 或 ALTER USER 语句将用户绑定到特定的资源组,使得用户会话始终受到设定边界约束;
通过 SET RESOURCE GROUP 设置当前会话的资源组;
通过 Hint RESOURCE_GROUP() 设置当前语句的资源组。
for list in /mysql5.7/bin/mysql -hyourip -p'yourpassword' -vvv -e " select id from INFORMATION_SCHEMA.processlist a where a.info is not null and (mem >=11474836480 or time >600);" |grep -Ev 'id|ID|iD|Id' |awk -F "|" '{print $2}'
do
echo $list
/mysql5.7/bin/mysql -hyourip -p’yourpassword’ -vvv -e “select id,time,info,mem from INFORMATION_SCHEMA.processlist a where id=$list and a.info is not null;;” >/killsqllog/date +%s.log
/mysql5.7/bin/mysql -hyourip -p’yourpassword’ -vvv -e " kill tidb $list ;"
done;
mysql> set global tidb_mem_oom_action='cancel';
Query OK, 0 rows affected (0.02 sec)
mysql> show variables like '%oom%';
+--------------------------------+--------+
| Variable_name | Value |
+--------------------------------+--------+
| tidb_enable_tmp_storage_on_oom | ON |
| tidb_mem_oom_action | CANCEL |
+--------------------------------+--------+
2 rows in set (0.01 sec)