InnoDB Master Thread I/O Rate详解
一、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详解的更多相关文章
- 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 ...
- 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 是一个线程 执行各种任务在后台. ...
- [译]Java Thread join示例与详解
Java Thread join示例与详解 Java Thread join方法用来暂停当前线程直到join操作上的线程结束.java中有三个重载的join方法: public final void ...
- InnoDB master thread工作原理
我们简单交流下InnoDB master thread学习,有兴趣的朋友可以参考<<MySQL技术内蒙--InnoDB存储引擎第二版>> void master_thread( ...
- “全栈2019”Java多线程第十章:Thread.State线程状态详解
难度 初级 学习时间 10分钟 适合人群 零基础 开发语言 Java 开发环境 JDK v11 IntelliJ IDEA v2018.3 文章原文链接 "全栈2019"Java多 ...
- innodb master thread 工作原理
参考 innodb参数汇总 InnoDB的Master Thread工作原理 innodb_max_dirty_pages_pct 默认值 show variables like 'innodb_m ...
- InnoDB master thread学习
很久很久没有写博客了,工作比较忙,也没什么时间学习了,恰逢国庆放假,安心的学习一下,其实只是把之前学习过的知识再温习了一下而已.InnoDB 有众多的线程,其中非常核心的就是master thread ...
- 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 ...
- python:threading.Thread类的使用详解
Python Thread类表示在单独的控制线程中运行的活动.有两种方法可以指定这种活动: 1.给构造函数传递回调对象 mthread=threading.Thread(target=xxxx,arg ...
随机推荐
- SIT/UAT测试
SIT/UAT测试 学习了:https://blog.csdn.net/just_tigris/article/details/52441823 https://baike.baidu.com/ite ...
- 【C#】SQL数据库助手类1.0(自用)
using System; using System.Collections.Generic; using System.Text; using System.Configuration; using ...
- 【Javascript Demo】无刷新预览所选择的图片
1.效果如下,可测试 2.代码如下 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" " ...
- IMA文件如何打开,winimage使用方
一般先用UltraISO打开一个系统的镜像文件(.iso).其中有些文件(尤其是.ima,img)比如下面雨林木风Ghost系统盘的这个IMA文件,我们先提取到桌面 用WinImage打开这个文件即可 ...
- ZH奶酪:Word断字功能不可用。请运行Microsoft Office安装程序安装该功能,然后重试。
断字功能就是英文单词遇到换行时候会自动添加一个“-”符号来连接跨行的单词. 此外,英文单词拼写校验的功能也是这样添加. 问题如图所示: 解决方法: 打开安装程序“setup.exe”——点击“添加或删 ...
- Android获取网络图片应用示例
1.养成好习惯,配置字符串资源文件 strings.xml <?xml version="1.0" encoding="utf-8"?> <r ...
- 分享几个.NET 下的计划任务组件
Quartz http://www.quartz-scheduler.net/(现项目在使用,可以看我之前的文章) Hangfire http://hangfire.io/ Install-Packa ...
- Hibernate(九)HQL查询
一.Hibernate提供的查询方式 OID查询方式:主键查询.通过get()或者load()方法加载指定OID的对象查询结果为一个 HQL查询方式:通过Query接口使用HQL语言进行查询 QBC查 ...
- Java从零开始学二十七(NumberFormat类)
一.NumberFormat表示数字的格式化类 NumberFormat表示数字的格式化类,即:可以按照本地的风格习惯进行数字的显示. No. 方法 类型 描述 1 public static Loc ...
- itext Protecting your PDF
/* * This class is part of the book "iText in Action - 2nd Edition" * written by Bruno Low ...