0
点赞
收藏
分享

微信扫一扫

dba+开源工具:囚禁慢SQL的简易利器(附下载)

冶炼厂小练 2022-07-12 阅读 33

工具研发者介绍

贺春旸,凡普金科和爱钱进DBA团队负责人,《MySQL管理之道:性能调优、高可用与监控》第一、二版作者,曾任职于中国移动飞信、安卓机锋网。四次荣获dbaplus年度MVP,致力于MariaDB、MongoDB等开源技术的研究,主要负责数据库性能调优、监控和架构设计。

工具下载:

​​https://github.com/hcymysql/imprison_rg​​


简介


数据库90%的性能问题基本都是由SQL引起的,线上SQL的执行快慢,会直接影响系统的稳定性。


如果你刚入职一家公司,线上数据库CPU被慢SQL给打爆了,但你又不敢直接将慢SQL杀死,万一出点事可能自己得负连带责任。


退而求其次,可以利用MySQL 8.0资源组该功能,有效解决慢SQL引发的CPU告警。


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


这里我封装了一个PHP脚本,可简化DBA输入相关资源组命令的操作,直接在SHELL里运行即可。


该工具默认把执行时间超过10秒的慢SQL(SELECT | INSERT | UPDATE | DELETE | ALTER),捆绑在CPU最后一个核。


操作演示


环境准备:


shell> yum install -y php php-mysql


修改配置文件:


######下面的配置信息修改成你自己的!!!######

shell> vim imprison_rg.php

$hostip='127.0.0.1';

$username='admin';

$password='hechunyang';

$dbname='test';

$dbport=3306;

$long_time=10; //执行时间10秒



部署在主库运行:


shell> php imprison_rg.php


关闭并删除资源组:


shell> php imprison_rg.php  --stop


dba+开源工具:囚禁慢SQL的简易利器(附下载)_mysql


会在工具目录下生成slowlog.txt文件保存慢SQL。


shell> cat slowlog.txt

2021-07-21 18:22:30

用户名:root

来源IP:localhost

数据库名:test

SQL语句:select sleep(3600)

资源组:slowsql_rg

执行时间:13 秒


注:资源组启动需开启CAP_SYS_NICE功能,并重启mysqld进程生效。


开启步骤如下:


shell> setcap cap_sys_nice+ep /usr/local/mysql/bin/mysqld

shell> getcap /usr/local/mysql/bin/mysqld /usr/local/mysql/bin/mysqld = cap_sys_nice+ep

shell> systemctl restart mysqld.service


验证:


使用top命令查看CPU状态信息,发现慢SQL已经绑定在CPU最后一核上运行。对于复杂、执行时间长、消耗资源多的慢SQL,我们可以将其设置特定的资源组,限制SQL查询的使用资源,避免导致其它正常查询不被响应,甚至导致MySQL直接hang住。


dba+开源工具:囚禁慢SQL的简易利器(附下载)_sql_02


下载方式


此工具现通过dbaplus社群免费为大家提供下载使用。若使用过程中有任何问题或建议,可随时与我们联系,欢迎大家试用。


登录以下链接即可下载:

​​https://github.com/hcymysql/imprison_rg​​


更多开源工具&脚本


dba+开源工具:囚禁慢SQL的简易利器(附下载)_sql_03


更多工具及下载可登陆:

​​http://dbaplus.cn/list-142-1.html​​


>>>>相关活动推荐


2021 DAMS中国数据智能管理峰会将于8月27日在上海举办,专设开源&国产数据库专场,共同探讨数据库国产化如何加速落地进程:


  • 【蚂蚁集团】下一代分布式数据库设计思考;开源分布式HTAP:OceanBase核心解读
  • 【美团】数据库异常智能分析与治理实践
  • 【百度】图数据库在DevOps体系中的实践与应用
  • 【中国移动】云环境下数据库迁移之路
  • 【工商银行】MySQL数据库上云及云上运维实践
  • 【光大银行】分布式数据库技术体系建设与应用


dba+开源工具:囚禁慢SQL的简易利器(附下载)_sql_04


2021 Gdevops全球敏捷运维峰会将于10月15日在广州举办,同样设置了干货满满的数据库专场,聚焦大规模数据库运维实战:


  • 【蚂蚁集团】下一代分布式数据库设计思考
  • 【京东】维稳618和双11:京东科技数据库海量运维的生态体系建设与实践
  • 【平安银行】传统银行关键业务和复杂架构挑战下,如何做到数据库敏捷运维
  • 【OPPO】PB级万亿数据库MongoDB性能优化及最佳实践
  • 【vivo】ABC场景驱动下,如何制定数据库与存储技术规划


dba+开源工具:囚禁慢SQL的简易利器(附下载)_sql_05

举报

相关推荐

0 条评论