美文网首页
mysql大量脏页未刷盘关闭实例非常缓慢

mysql大量脏页未刷盘关闭实例非常缓慢

作者: GAOCHAO_DBA | 来源:发表于2018-06-13 09:56 被阅读0次

异常现象

由于业务需求,需要重启msyql从库,但是发现关闭非常慢,超过60秒,由于历史原因,启动脚本设置了如果60秒未关闭就会强制kill -9,数据库关闭后再进行重启时报启动失败,由于当时比较紧急,没有查看报错日志,没有留下失败的原因。不过从这次关闭时间太长发现这台机器的脏页非常大,大量的脏页再60秒内未完成刷盘,最终导致这次故障,以下信息是后期模拟故障原因。

  • 关闭超过60秒kill -9直接杀掉进程


    WeChat_1528710350.jpeg
  • 日志信息(日志停留在了purge阶段)


    WeChat_1528710379.jpeg
  • 启动(进行了recovery)


    WeChat_1528710738.jpeg

实例基础信息:

  • 数据库版本:MariaDB10.0.27
  • 硬件信息:青云主机,普通磁盘非raid
  • 数据库中数据量> innodb buffer pool配置
    innodb_fast_shutdown = 1
    innodb_io_capacity = 200
    innodb_io_capacity_max = 2000
    innodb_flush_log_at_trx_commit = 1
    innodb_max_dirty_pages_pct = 75

加快脏页刷盘策略

  • 加快脏页刷新策略(根据磁盘io瓶颈设置)
set global innodb_io_capacity = 1000;
set global innodb_max_dirty_pages_pct = 35;
  • 等待半小时作业看到脏页数量明显持续减少


    image.png

相关文章

  • mysql大量脏页未刷盘关闭实例非常缓慢

    异常现象 由于业务需求,需要重启msyql从库,但是发现关闭非常慢,超过60秒,由于历史原因,启动脚本设置了如果6...

  • MySQL:脏页刷盘

    什么是脏页? InnoDB在处理更新语句时,先写内存再写redo log,并不会立即将数据页的更新落地到磁盘(WA...

  • Mysql 刷脏页磁盘

    一条SQL语句,正常执行时候特别快,有时候会突然变得特别慢,而且很难复现,它不只是随机而且持续时间很短。 看上去像...

  • MySQL-Innodb-Flush

    刷脏的种类 批量刷脏 单页刷脏操作批量刷脏是后台线程发起,单页刷脏操作是用户线程发起。批量刷脏中的同步刷脏是Red...

  • mysql的两次写

    一、脏页刷盘风险 关于IO的最小单位: 1、数据库IO的最小单位是16K(MySQL默认,oracle是8K) 2...

  • MySQL脏页

    当内存数据页跟磁盘数据页内容不一致的时候,我们称这个内存页为“脏页”。内存数据写入到磁盘后,内存和磁盘上的数据页的...

  • Mysql - 脏页

    1 . 脏页(内存页) 当内存数据页跟磁盘数据页内容不一致的时候,我们称这个内存页为“脏页”。内存数据写入到磁盘后...

  • MySQL刷脏页造成查询性能抖动

    MySQL更新数据,更新内存buffer pool里的数据,然后写redo log,之后就返回了。这样在异步线程把...

  • InnoDB

    MySQL-InnoDB 架构 CheckPoint 已经被flush到页上的LSN。 刷盘策略 缩短数据库恢复时...

  • mysql数据库基础操作,修改密码

    1、mysql数据库启动、数据库关闭、数据库登录 1.1单实例数据库启动、关闭、登录 1) mysql启动 /et...

网友评论

      本文标题:mysql大量脏页未刷盘关闭实例非常缓慢

      本文链接:https://www.haomeiwen.com/subject/bjwheftx.html