MySQL 8.0資源組有效解決慢SQL引發CPU告警

資源組的作用是資源隔離(你可以理解爲開通雲主機時勾選的硬件配置),將線上的慢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;




發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章