一、innodb 在刷盘时要面对的问题:

  1、对于innodb 的master thread 这个线程来说,它会在后台执行许多的任务,这些任务大多数都是与IO操作相关的,

  比如“刷新脏页到磁盘”、“合并插入缓存到二级索引”、master thread 不只是要完成这些工作,而且还要考虑到对

  性能的影响,力求完成这些工作的同时也不怎么影响性能;

  2、上面说的还是比较抽象的,还是来个例子。假设磁盘每秒只能完成100个IO请求,业务逻辑每秒有60个事务,从少的

  算假设60个事务的日志刷新对应着60个写请求,如果这个一秒内master thread 发起80个IO请求;也就是说一秒内

  磁盘只能处理100个请求,而mysql总共发起了140个;那么就有40个请求要再下一秒才能完成,如果每一秒都发起140

  个请求的话,最终mysql还是会卡死的,因为它根本忙不过来。

  3、好现在,再回过头来看一下master thread 干的什么事、由上面说的内容可以知道master thread 就是刷新innodb buffer pool

  中的数据;再思考一个问题,一个事务怎么才算完成?答案是只要日志(redo,undo)写入了磁盘就算完成了;事实上数据等到

  空闲的时候再刷新到磁盘也是可以的。

  4、好回到2中提到的问题,问题的本质是硬件性能跟不上,而innodb 并不知道硬件性能这么low,发起了过多的IO请求,使得

  它出了问题。

二、怎么解决问题

  由一.4可以知道解决问题的关键是innodb 不知道磁盘的IOPS是有多大,解决方法也就非常的简单了,我们告诉它就行了呀!我们

  告诉它的方式就是通过配置嘛!

[mysqld]
innodb_io_capacity=200

  比较说这这里告诉innodb磁盘每秒大概可能处理200IO请求。

三、对于innodb_io_capacity 的参考:

  说句大实话,一般的笔记本电脑上的5400转的盘,一秒也就60来个IOPS,经历表示innodb_io_capacity这个200的默认值,

  通常来说这个参数不会成为约束mysql性能的参数。

----

交流学习&打赏

-----------------------------------------------------------------------

InnoDB Master Thread I/O Rate详解的更多相关文章

  1. 14.4.8 Configuring the InnoDB Master Thread IO Rate 配置InnoDB Master Thread I/O Rate

    14.4.8 Configuring the InnoDB Master Thread IO Rate 配置InnoDB Master Thread I/O Rate 主的master thread ...

  2. 14.6.8 Configuring the InnoDB Master Thread IO Rate 配置InnoDB 主线程IO 速率:

    14.6.8 Configuring the InnoDB Master Thread IO Rate 配置InnoDB 主线程IO 速率: 主线程 在InnoDB 是一个线程 执行各种任务在后台. ...

  3. [译]Java Thread join示例与详解

    Java Thread join示例与详解 Java Thread join方法用来暂停当前线程直到join操作上的线程结束.java中有三个重载的join方法: public final void ...

  4. InnoDB master thread工作原理

    我们简单交流下InnoDB master thread学习,有兴趣的朋友可以参考<<MySQL技术内蒙--InnoDB存储引擎第二版>> void master_thread( ...

  5. “全栈2019”Java多线程第十章:Thread.State线程状态详解

    难度 初级 学习时间 10分钟 适合人群 零基础 开发语言 Java 开发环境 JDK v11 IntelliJ IDEA v2018.3 文章原文链接 "全栈2019"Java多 ...

  6. innodb master thread 工作原理

    参考 innodb参数汇总  InnoDB的Master Thread工作原理 innodb_max_dirty_pages_pct 默认值 show variables like 'innodb_m ...

  7. InnoDB master thread学习

    很久很久没有写博客了,工作比较忙,也没什么时间学习了,恰逢国庆放假,安心的学习一下,其实只是把之前学习过的知识再温习了一下而已.InnoDB 有众多的线程,其中非常核心的就是master thread ...

  8. saltStack运维工具的部署及master迁移实现的过程详解

    服务器端:192.168.3.87 客户端:192.168.3.86.192.168.3.108 1.salt服务器端安装 192.168.3.87 rpm -Uvh http://mirrors.y ...

  9. python:threading.Thread类的使用详解

    Python Thread类表示在单独的控制线程中运行的活动.有两种方法可以指定这种活动: 1.给构造函数传递回调对象 mthread=threading.Thread(target=xxxx,arg ...

随机推荐

  1. ifconfig无输出的解决办法

    问题 执行 ifconfig 命令无任何报错,也无任何输出信息 [root@linuxprobe ~]# ifconfig [root@linuxprobe ~]# 排错 1. 检查PATH变量 [r ...

  2. 2015年末分享:利用RS修改用户密码

    马上就要2016农历新年了,送点什么给大家呢?我觉得还是分享点技术吧.前不久用户在抱怨为什么登录Cognos Connection的密码不能让我们自己改?相信Cognos开发的很多人知道,Cognos ...

  3. json树递归js查询json父子节点

    上代码,直接另存为html打开,看console控制台就可以看到效果了 <!DOCTYPE html> <html lang="en"> <head& ...

  4. 内有干货!2个人3个月怎样从零完毕一款社区App《林卡》

    嘿,大家好.我是不灭的小灯灯,我赌5毛你没听说过我的名字... 好啦.这篇不是鸡汤,是经验吐槽.干货分享! 所以乱七八糟的就不多说了.直接切入正题. 先说下自己的情况背景,眼下尚未毕业.非计算机专业, ...

  5. 用10046 跟踪exp

    之前写过一个blog,Oracle expdp为什么比exp快,原理是什么,是从官方文档中获知的,如今通过10046来分析exp的过程. C:\Users\Administrator>exp L ...

  6. Discuz常见小问题-如何实现word文档转成帖子

    有一些网站比如QQ空间是可以直接导入Word文件生成网页版本的,但是效果不理想 可以发现图片进来之后都是变形了的 最笨的方法是一个一个复制粘贴(当然也不需要这么麻烦,你可以打开一个word文档之后,保 ...

  7. “最大子序列和”算法 java

    maxSubSum各自是最大子序列和的4中java算法实现. 第一种算法执行时间为O(N^3),另外一种算法执行时间为O(N^2),第三种算法执行时间为O(nlogn),第四种算法执行时间为线性N p ...

  8. CSS3 选择器浏览器兼容性汇总 IE8

    1.css选择器 css(包括css1.css2和css3)有哪些选择器? http://www.w3school.com.cn/cssref/css_selectors.asp 2.CSS3选择器 ...

  9. 怎么将txt文件转化为html格式的文件?--极为丑陋的方式

    # -*- coding: utf-8 -*- #python 27 #xiaodeng #怎么将txt文件转化为html格式的文件?--极为丑陋的方式 import os #找出所有的txt格式的文 ...

  10. 域名无法解析 Linux临时或永久修改DNS

    最近给VPS重装了系统,因为服务商不提供DHCP,所以只好手动设置IP和DNS Server.悲催的是系统重装的时候忘记了输入DNS Server,最后导致进去系统后,各种域名无法解析. Linux中 ...