老王:最近我的MySQL数据库很慢.... 很忧伤,这可肿么办?

帅萌:老王,老王你莫心慌,听我跟你唠~

MySQL性能有问题,先应该关注的是慢查询日志(slow log)。

MySQL性能慢,多半是SQL引起的(慢查询日志会把执行慢的SQL,一五一十的记录下来,就像你的身体一样诚实..)需要根据慢查询日志的内容来优化SQL。

其次,除了MySQL慢查询日志,还需要更多的关注liunx系统的指标和参数。

top 命令帮你观察大橘(局)。

观察 load average 1分钟 、5分钟、 15分钟的平均负载值。

然后是us% 用户使用的CPU占比,如果us%太高,极有可能索引使用不当。

sy%系统内核使用的CPU占比,如果sy%太高,要注意MySQL的连接数和锁等信息。

wa% io使用CPU的占比,如果wa%太高,要关注MySQL是否使用了硬盘临时表,或者大量刷盘等操作,也有可能是硬盘太慢,或硬盘故障,可以使用iostat等工具来观察。

还需要关注各个逻辑CPU之前的负载是否均衡(可能是中断不均衡导致性能问题),可以使用mpstat命令来进行详细观察。

MySQL是数据库服务,不建议跟其他应用混跑。

其次是内存的使用信息,先通过free来观察。

要观察 是否使用了SWAP,剩余多少内存,是否发生内存泄漏。

说到SWAP,就要说到NUMA,通过numactl来观察NUMA的使用情况,建议关闭NUMA。至于为什么,建议阅读《NUMA架构的CPU -- 你真的用好了么?》 。

内存泄漏观察方法 buff/cache 和used 对比。 如果发生了内存泄漏,解决方案:

重启MySQL 。

升级到最新的小版本MySQL 。

还可以通过vmstat 来观察每秒的进程、内存、swap、io、cpu等详情情况。

然后要关注IO的使用情况,可以通过 iostat -x来观察,主要观察。

rrqm/s #每秒读取的扇区数。

wrqm/s #每秒写入的扇区数。

avgrq-sz #平均请求扇区的大小 。

avgqu-sz #是平均请求队列的长度。

await #每一个IO请求的相应时间。

%util #在统计时间内所有处理IO时间,除以总共统计时,暗示了设备的繁忙程度。

MySQL观察层面

主要关注tps、qps、并发连接数(Threads_connected)、并发活跃线程数(Threads_running)、临时表(tmp_disk_tables)、锁(locks_waited, Innodb_row_lock*)等指标。

关注当前是否有不良线程状态,例如:copyto tmp table、Creating sort index、Sorting result、Creating tmp table、长时间的Sending data等。

关注InnoDB buffer pool page的使用情况,主要是Innodb pages_free、Innodb wait_free两个 。

关注InnoDB的redo log刷新延迟,尤其是checkpoint延迟情况,并关注unpurge list大小。

关注innodb status中是否有long semaphore wait的情况出现。

观察是否有大事物的阻塞。

在观察MySQL运行状态方面,帅萌丢一个py脚本。写的时间久,迭代N个版本,不过这个版本很方便....(其他的在项目里拆起来有点费劲)。但是编程这方面越写越精,需要磨练,各位可以参考一下,相信你们会写的更棒。

如果实在看不懂的请联知数堂zizi老师,我负责挖坑,他负责教你会,带你飞。

还提供一个SOS.sh脚本,当性能遇到问题,可以根据实际情况进行修改,并自行把相关内容打包,以便探讨和交流。

(杨奇龙老师的图)

、##参考 知数堂-叶问(20181218)

、##感谢,有赞杨奇龙老师提供的帮助,以及图片支持。

阿里云 mysql 太慢_MySQL很慢... 怎么破??-阿里云开发者社区相关推荐

  1. 阿里云 mysql 安全设置_mysql数据库安全设置

    什么是mysql数据库安全 简单又通俗的mysql库安全简介 首先我们要了解一下什么是mysql数据库,mysql是目前网站以及APP应用上用的较多的一个开源的关系型数据库系统,可以对数据进行保存,分 ...

  2. 阿里云 mysql 双主_mysql数据库一主两从

    mysql数据库一主两从 云服务器(Elastic Compute Service,简称ECS)是阿里云提供的性能卓越.稳定可靠.弹性扩展的IaaS(Infrastructure as a Servi ...

  3. 华为云 mysql 主备_安全性能两手抓,华为云MySQL“非双一特性”助力企业业务稳定高效运行...

    各位亲爱的开发者们,为了给大家分享更多精彩的技术干货,给大家创造更加纯净的开发者交流环境,请移步至csdn平台华为云专区哦,点击传送门关注:https://blog.csdn.net/devcloud ...

  4. mysql 慢_MySQL很慢... 怎么破??-阿里云开发者社区

    老王:最近我的MySQL数据库很慢.... 很忧伤,这可肿么办? 帅萌:老王,老王你莫心慌,听我跟你唠~ MySQL性能有问题,先应该关注的是慢查询日志(slow log). MySQL性能慢,多半是 ...

  5. mysql 参数调整_mysql需要调整的参数-阿里云开发者社区

    Mysql需要调整的参数 #以 mysql 5.6版本示例讲解 一.Innodb设置 innodb_buffer_pool_size:保存innodb数据和索引在该buffer中, 对专用mysql服 ...

  6. 阿里云mysql事件启动_mysql 启动事件-阿里云开发者社区

    事件调度器有时也可称为临时触发器(temporal triggers),因为事件调度器是基于特定时间周期触发来执行某些任务,而触发器(Triggers)是基于某个表所产生的事件触发的,区别也就在这里. ...

  7. mysql 分布式 安装_mysql分布式集群安装-阿里云开发者社区

    概述 MySQL Cluster旨在提供具有高可用性和低延迟的MySQL兼容数据库. MySQL Cluster技术通过NDB(网络数据库)和NDBCLUSTER存储引擎实现,并为MySQL数据库系统 ...

  8. mysql 接口访问_MySQL的数据库访问接口-阿里云开发者社区

    大部分流行的关系数据库产品采用的都是 C/S 架构.因此,应用程序要访问数据库的数据就必须和各种数据库客户端(也称为数据库访问接口)打交道.可以这么认为,每一种流行的编程语言都需要一个对应的数据库访问 ...

  9. 阿里云mysql创建用户_mysql创建用户-阿里云开发者社区

    创建用于localhost连接的用户并指定密码 mysql> create user'pcom'@'localhost'identified by'aaa7B2249'; Query OK,0r ...

最新文章

  1. 单纯形法表格法例题详解_优化 |运筹学线性规划单纯形法之求解
  2. kafka-0.10.2.1:Producer生产时无法自动创建Topic
  3. msql 复杂练习
  4. Java中main函数只能调用同类中的静态方法?
  5. 12张图带你彻底理解分布式事务产生的场景和解决方案!!
  6. 陌陌看好的移动营销 Criteo表示尚未成为主流
  7. yii2 nginx php配置,求助-yii2在nginx上的rewrite配置
  8. python web框架 多线程和多进程_python的多线程和多进程(一)
  9. 重磅消息!三星、联想和微软的设备将会搭载Android 12L
  10. 数据库查询优化-添加索引
  11. 2019新鲜出炉的BAT通关面试题 Java岗
  12. window中cmd复制文件命令
  13. pdca实施的流程图_思维导图丨《高效PDCA工作术》流程图
  14. java过滤器定义_Java ---Filter过滤器
  15. NVIDIA 图像显卡参数列表
  16. 三菱触摸屏与三菱L系类PLC以太网通讯
  17. python 最简单的图灵机器人
  18. GB\T和GB国标文件查询、下载方法(建议收藏)
  19. 云呐|如何管理好公司的固定资产,固定资产管理怎么做
  20. VUE中通过JS让input自动获取焦点

热门文章

  1. Powershell Excel Module
  2. 新浪微盘账户关联登录
  3. Linux 部署 .NET 6(宝塔面板)
  4. 为什么你的拼多多店铺会被降权了
  5. 快速了解vue(2)
  6. 来谈谈海尔采购与供应链管理的智慧!
  7. 【附源码】计算机毕业设计JAVA智能停车场管理系统
  8. Linux环境下进程和计划任务管理
  9. 十七点安全知识详细了解进程和病毒
  10. Qt Creator编译报错: C2001: 常量中有换行符