MySQL 8.0资源组有效解决慢SQL引发CPU告警
2019-12-10 15:28
1181 查看
资源组的作用是资源隔离(你可以理解为开通云主机时勾选的硬件配置),将线上的慢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为优先级别,范围是0到19,19是最低优先级,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;
相关文章推荐
- 一条sql语句引发mysql不停创建临时表的问题解决..coping to tmp table on desk
- SQL调优案例,MYSQL服务器CPU100%问题解决
- 8.0版本Mysql遇到MySQL 服务无法启动的解决方法
- mysql sql_mode 解决数据库非空无默认值依然可以插入的问题
- 创建存储过程错误(已解决):Error Code : 1064 You have an error in your SQL syntax; check the manual that corresponds to your MySQL server ver
- 当在SCOM 2007 SP1环境下遭遇SQLSERVER进程持续占用CPU 100%的解决办法
- 解决 MYSQL CPU 占用 100% 的经验总结
- MySQL 8.0新特性:彻底解决困扰运维的复制延迟问题,你信吗? - MySQL
- Go丨语言package github.com/Go-SQL-Driver/MySQL: exec: "git": executable file not found in %PATH%解决方法
- Spark SQL连接数据库找不到Mysql驱动解决方法
- centos7 安装mysql 报错:亲测有效,解决Can 't connect to local MySQL server through socket '/tmp/mysql.sock '(2)
- 【mysql】sql删除多个字段重复数据有主键和没主键解决方法
- MYSQL同步 Slave_IO_Running: No 或者Slave_SQL_Running: No 解决办法
- Slave_SQL_Running: No mysql同步故障解决方法
- 【转】MySQL(Navicat)运行.sql文件时报错:[Err] 2006 - MySQL server has gone away 的解决方法
- MySQL从命令行导入SQL脚本时出现中文乱码的解决方法
- 解决mysql java.sql.SQLException: The server time zone value‘XXXXXX' is unrecognized or represents...
- MySQL 8.0 新增SQL语法对窗口函数和CTE的支持
- 在cluster中的SQL节点上安装php-mysql会有冲突提示(问题已经解决)
- 有效解决 iOS The document “(null)” requires Xcode 8.0 or later.