资讯专栏INFORMATION COLUMN

mysql性能排查

yearsj / 1552人阅读

摘要:性能瓶颈排查查看进程的消耗占比确认进程的消耗是还是高确认是否是物理内存不够用了确认是否有产生如何优化硬件优化查看线程状态长时间的从引擎层读取数据返回给端长时间存在的原因没有合适的索引查询效率低下读取大量数据读取缓慢系统负载高读取缓慢

mysql性能瓶颈排查 top/free/vmstat/sar/mpstat

查看mysqld进程的cpu消耗占比

确认mysql进程的cpu消耗是%user, 还是sys%高

确认是否是物理内存不够用了

确认是否有swap产生

top (%cpu  load  %MMEM)
free -gt 
vmstat -S m 1 (procs  io  cpu)
sar -u 1 (%user)
sar -d 1
如何优化

硬件优化

查看mysql线程状态 show [full] processlist

长时间的Sending data

从引擎层读取数据返回给server端

长时间存在的原因:
  1 没有合适的索引 查询效率低下
  2 读取大量数据 读取缓慢
  3 系统负载高 读取缓慢
  
如何做:
  1 加上合适的索引
  2 改写sql
  3 增加LIMIT限制每次读取量
  4 检查&升级IO设备性能

长时间等待MDL锁 (waiting for table metadata lock)

原因:
  DDL被阻塞 进而阻塞其他后续sql
  DDL之前的sql长时间未结束
  
如何做:
  1 提高每条sql的效率
  2 kill掉长时间运行的sql
  3 把DDL放在夜间低谷时段
  4 采用pt-osc执行DDL

长时间的sleep

占用连接数

消耗内存未释放

可能有行锁(甚至是表锁未释放)

如何做:
1 适当调低timeout
2 主动kill超时不活跃连接
3 定期检查锁、锁等待
4 可以利用pt-kill工具

其他状态

Copy to tmp table [on disk]
  执行alter table修改表结构,需要生成临时表
  建议放在夜间低谷进行, 或者用pt-osc
  
Creating tmp table
  常见于group by没有索引的情况
  需要拷贝数据到临时表[内存/磁盘上]
  执行计划中会出现Using temporary关键字
  建议创建合适的索引,消除临时表
  
Creating sort index
  常见于order by没有索引的情况
  需要进行filesort排序
  执行计划中会出现Using filesort关键字
  建议创建排序索引

其他排除方法

use information_schema; SELECT * from innodb_lock_waits;

show engine innodb status;

测试环境调低long_query_time的值 开启log_queries_not_using_indexes 分析慢日志

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/48006.html

相关文章

  • MySQL数据库运维之主从复制延迟问题排查

    摘要:这个参数表示事务执行完成之后,多久的频率刷新一次日志到磁盘上,可用的值有如下几种表示会将日志缓冲区中的数据每秒一次地写入日志文件中,并且日志文件的刷盘操作同时进行。 上篇文章介绍了单机环境下的MySQL主从异步复制和主从半同步复制的搭建过程。搭建过程很简单,但是在实际使用过程中,更多的是解决问题,本篇文章将介绍一下MySQL主从复制中常见的问题以及如何定位问题和如何解决问题。 一、从库...

    xumenger 评论0 收藏0
  • Web优化躬行记(5)——网站优化

    摘要:最近阅读了很多优秀的网站性能优化的文章,所以自己也想总结一些最近优化的手段和方法。个人感觉性能优化的核心是减少延迟,加速展现。初步以为是这个功能导致的服务挂起,询问相关操作人员,得到当时的操作过程。  最近阅读了很多优秀的网站性能优化的文章,所以自己也想总结一些最近优化的手段和方法。   个人感觉性能优化的核心是:减少延迟,加速展现。   本文主要从产品设计、前端、后端和网络四个...

    233jl 评论0 收藏0
  • What’s New in TiDB 3.0.0 Beta.1

    摘要:作者申砾今年月份,我们发布了版本,上也对这个版本做了介绍,经过两个月的努力,今天推出了下一个版本。新增通过语句方式管理状态,简化状态管理,当前仅支持查看状态。支持通过配置文件管理发送策略丰富管理方式。在这里对各位贡献者表示由衷的感谢。 作者:申砾 今年 1 月份,我们发布了 TiDB 3.0.0 Beta 版本,DevCon 上也对这个版本做了介绍,经过两个月的努力,今天推出了下一个 ...

    cc17 评论0 收藏0
  • What’s New in TiDB 3.0.0 Beta.1

    摘要:作者申砾今年月份,我们发布了版本,上也对这个版本做了介绍,经过两个月的努力,今天推出了下一个版本。新增通过语句方式管理状态,简化状态管理,当前仅支持查看状态。支持通过配置文件管理发送策略丰富管理方式。在这里对各位贡献者表示由衷的感谢。 作者:申砾 今年 1 月份,我们发布了 TiDB 3.0.0 Beta 版本,DevCon 上也对这个版本做了介绍,经过两个月的努力,今天推出了下一个 ...

    SimpleTriangle 评论0 收藏0
  • 菜鸟排查数据库异常的事

    摘要:问题出现在微信公众号推送活动消息后,数据库直接满载而且连接数到达了设置的最大值,新用户打不开或者打开很慢。 这件事情起源于上个月做的微信公众号项目,在项目上线初期,运行平稳,数据库并没有出现异常。 问题出现在微信公众号推送活动消息后,数据库cpu直接满载,而且连接数到达了设置的最大值,新用户打不开或者打开很慢。当时监控显示的情况很糟糕。 showImg(https://segmen...

    aboutU 评论0 收藏0

发表评论

0条评论

yearsj

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<