没有所谓的捷径
一切都是时间最平凡的累积

mysql占用I/O资源排查处理

本文最后更新:2021年4月25日,已超过1059天未更新,如果文章内容失效,请留言反馈本站。

一.排查占用I/O高的进程

Windows

1.打开任务管理器查看较占资源的进程.

2.资源监视器-磁盘-按读、写排序进一步核查:

mysql占用I/O资源排查处理

Linux

1. 运行top命令查看较占资源的进程.

mysql占用I/O资源排查处理

参数:78.2%wa :表示cpu 中出现严重硬件i/o等待问题,通常就是读写磁盘 I/O 造成的

2. 使用iotop命令进一步核查

1
iotop  -o    # 仅显示占用I/O的进程

mysql占用I/O资源排查处理 二.mysql占用I/O具体分析

◆ 使用:“show  processlist; ”或 “show full processlist;”命令查看具体语句。

mysql占用I/O资源排查处理

可以看出存在锁表现象

◆  根据具体语句使用explain 执行查看该条语句查询的行数。如果show的时候没有查看到具体语句,可查看my.cnf中是否有开启慢查询日志,通过mysqldumpslow 来分析记录

mysql占用I/O资源排查处理

可以看出执行量大,查询很慢.

◆ 使用:“lsof -p pid号” 或 “ll/proc/pid号/fd ”命令查看读写频繁的数据库、表等。

mysql占用I/O资源排查处理

三.提供解决方案及建议

1. 非ssd磁盘配置的主机首先引导推荐升级为ssd磁盘。

2. 出现锁表现象问题:建议将myisam格式表转换成innodb格式。转换方法

3. 查询量大,执行慢的现象问题:检查是否有创建相应的索引,已创建索引是否合理等,检查具体的语句是否需要优化。

mysql比较占iops检查、处理方向:https://blog.mydns.vip/2611.html

4. 因网站访问大引起mysql占资源问题:根据网站访问日志具体分析处理,如对请求较大的异常IP,useragent进行拦截。

5. 高并发情况下关闭mysql的缓存, my.ini 中 query_cache_type=0 和 query_cache_size=0

6. (重点)优化innodb格式表数据库配置:修改mysql配置文件修改或添加以下参数就能解决mysql 占io的问题:

1
innodb_flush_log_at_trx_commit = 2

innodb_flush_log_at_trx_commit=N的意义:

innodb_flush_log_at_trx_commit=0 :每次commit时,事务日志写进了innodb  log buffer , 然后每秒Log Thread  会将事务日志从innodb log  buffer刷新到ib_ogfile(也就刷新到了磁盘)。 当innodb_flush_log_at_trx_commit设置为0,mysqld进程的崩溃会导致 上一秒钟所有事务数据的丢失, 这是因为每次commit,事务日志只是写进了innodb log buffer 中,然后是每秒才将innodb log buffer 中的事务日志刷新到磁盘永久保存, 所以mysqld进程的崩溃时, innodb log buffer可能会有一秒的日志没有刷新出来,但是在这种情况下,MySQL性能最好;

innodb_flush_log_at_trx_commit=2 :每次commit时,事务日志写进了innodb  log buffer,并同时接着写进os cache, 也就是说每次commit,事务日志写进了os cache中, 然后每秒从os cache刷新到ib_logfile(也就是刷新到了磁盘)。innodb_flush_log_at_trx_commit设置为2,只有在操作系统崩溃或者系统掉电的情况下, 上一秒钟所有事务数据才可能丢失,因为每次commit,事务日志已经进入了os cache,所以mysqld崩溃,事务日志是不会丢失的;

innodb_flush_log_at_trx_commit=1 :这是最安全的设置,同时由于频繁的io操作,导致效率是最差的,这时候不管是mysqld,还是操作系统崩溃,都不会丢数据, 这是因为每次commit,事务日志都刷新到了磁盘永久保存了;

» 站长码字辛苦,有用点个赞吧,也可以打个
» 若转载请保留本文转自:豫章小站 » 《mysql占用I/O资源排查处理》
» 本文链接地址:https://mydns.vip/3672.html
» 如果喜欢可以: 点此订阅本站 有需要帮助,可以联系小站
赞(0) 打赏
声明:本站发布的内容(图片、视频和文字)以原创、转载和分享网络内容为主,若涉及侵权请及时告知,将会在第一时间删除,联系邮箱:contact@mydns.vip。文章观点不代表本站立场。本站原创内容未经允许不得转载,或转载时需注明出处:豫章小站 » mysql占用I/O资源排查处理
分享到: 更多 (0)

评论 抢沙发


  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

智慧源于勤奋,伟大出自平凡

没有所谓的捷径,一切都是时间最平凡的累积,今天所做的努力都是在为明天积蓄力量

联系我们赞助我们

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏