MySQL 8.0资源组有效解决慢SQL引发CPU告警
  xaeiTka4h8LY 2024年07月26日 55 0

资源组的作用是资源隔离(你可以理解为开通云主机时勾选的硬件配置),将线上的慢SQL线程id分配给CPU一个核,让它慢慢跑,从而不影响CPU整体性能。

创建一个资源组

mysql> create resource group slowsql_rg type=user vcpu=3 
thread_priority=19 enable;

slowsql_rg为资源组名字

type=user 来源是用户端的慢SQL

vcpu=3 给它分配到哪个CPU核上(你可以用cat /proc/cpuinfo  | grep processor查看CPU有多少核)

thread_priority为优先级别,范围是01919是最低优先级0是最高优先级

查看资源组信息

mysql> select * from information_schema.resource_groups;

查找慢SQL的线程ID

SELECT THREAD_ID,PROCESSLIST_INFO,RESOURCE_GROUP,PROCESSLIST_TIME FROM 
performance_schema.threads WHERE PROCESSLIST_INFO REGEXP 
'SELECT|INSERT|UPDATE|DELETE|ALTER' AND PROCESSLIST_TIME > 10;

THREAD_ID取出来的值,放入资源组里做限制

set resource group slowsql_rg for 379;

比如你想放宽的限制,也可以更改

ALTER RESOURCE GROUP slowsql_rg VCPU = 3 THREAD_PRIORITY = 0;

关闭资源组,解除限制

ALTER RESOURCE GROUP slowsql_rg DISABLE FORCE;
【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2024年07月26日 0

暂无评论

xaeiTka4h8LY