mysql io线程 原理_mysql 原理 ~ 线程与IO
一 简介:今天来聊聊具体的线程和IO
二 具体线程与作用
1 master thread mysql的主要工作触发线程
1 redo and binlog日志
2 合并插入缓冲。
3 脏页的刷新
4 undo页回收
5 产生一个ckp点
2 IO THREAD 处理AIO模式的回调部分
具体说明 AIO模式, 就是后台处理逻辑,然后先返回状态给前台,等后台处理完成,会调用回调函数进行二次操作,也就是数据库做完异步刷新,再调用以下进程
insert buffer thread->insert buffer merges插入缓冲线程 1个
log thread -> asynchronous log flushes 日志线程 1个
read thread -> read-ahead负责数据块的读取) 读线程 4个
write thread -> flushing of dirty buffers(负责数据库的写入) 写线程 4个
3 purge thread 最新版本默认4个
1 undo段的回收 2 对delete标记数据进行清除
1 可以通过 innodb_purge_thread 调节参数 加快对undo段的回收 默认是1,OLTP业务通常调节为4
4 page clean thread
1 脏页清理线程
1 默认启用一个线程,5,7支持多线程刷脏
2 默认参数 innodb_page_cleaners 默认是1;最大可以是64,也就是会有64个page cleaner线程
3 判断参数本身是否合适
Innodb_buffer_pool_wait_free 等待值
如果值很大,则需要增加innodb_page_cleaners值,同时增加写线程(innodb_write_io_thread)
三 名词解析
1 IO操作三要素 read / write/ sync
2 同步IO 在同步文件IO中,线程启动一个IO操作然后就立即进入等待状态,直到IO操作完成后才醒来继续执行 例如redo的刷新,负责线程 master thread
异步IO 异步文件IO方式中,线程发送一个IO请求到内核,然后继续处理其他的事情,内核完成IO请求后,将会通知线程IO操作完成了。 如果IO请求需要大量时间执行的话,异步文件IO方式可以显著提高效率 (缩写 aio) 例如脏页的刷新,负责线程 io thread
请记住
1 master thread和 io thread是独立的,并非相互干涉
2 mysql利用AIO的方式大大提高了处理效率,也是真正工作的,这里要牢记
3 page_cleaner_thread 和 purge thread的出现目标是减轻mater thread的负担
四 总结
1 mater thread负责主要工作,purge thread 和page cleaner分别负责undo和脏页的相关工作,整体的后期处理由io_thread完成
从分类角度上看 有部分同步IO工作 有部分异步IO工作
2 在起先的版本中 mysql通过源代码模拟AIO的工作,在最新的版本中.mysql已经依赖linux内核进行AIO操作,参数是innodb_use_native_aio(默认开启) 编译需要依赖 libaio。AIO的相关线程就是io thread部分,上面第二部分
mysql io线程 原理_mysql 原理 ~ 线程与IO相关推荐
- mysql auto_increment 原理_mysql原理之Auto_increment
引言 MySQL中auto_increment字段估计大家都经常用到,特别是innodb引擎.我也经常用,只知道mysql可以保证这个字段在多进程操作时的原子性,具体原理又是什么,后来查阅了MySQL ...
- mysql字符集排序规则_MySQL原理 - 字符集与排序规则
任何计算机存储数据,都需要字符集,因为计算机存储的数据其实都是二进制编码,将一个个字符,映射到对应的二进制编码的这个映射就是字符编码(字符集).这些字符如何排序呢?决定字符排序的规则就是排序规则. 查 ...
- Java线程池实现原理及其在美团业务中的实践
来自:美团技术团队 随着计算机行业的飞速发展,摩尔定律逐渐失效,多核CPU成为主流.使用多线程并行计算逐渐成为开发人员提升服务器性能的基本武器.J.U.C提供的线程池ThreadPoolExecuto ...
- mysql 半同步复制_Mysql半同步复制原理及问题排查
mysql半同步复制和异步复制的差别如上述架构图所示:在mysql异步复制的情况下,Mysql Master Server将自己的Binary Log通过复制线程传输出去以后,Mysql Master ...
- mysql数据库复制基本原理_MySQL的复制原理以及流程
原创文章出自公众号:「码农富哥」,如需转载请注明出处! 文章如果对你有收获,可以收藏转发,这会给我一个大大鼓励哟!另外可以关注我公众号「码农富哥」 (搜索id:coder2025),我会持续输出Pyt ...
- mysql主从同步原理_mysql主从同步以及原理
mysql主从复制介绍 当前的生产工作中,大多数应用的mysql主从同步都是异步的复制方式,即不是严格实时的数据同步. 实时和异步: 同步复制: 指的是客户端连接到MySQL主服务器写入一段数据,My ...
- mysql数据库主从同步的原理_mysql数据库主从同步复制原理
MySQL的Replication(英文为复制)是一个多MySQL数据库做主从同步的方案,特点是异步复制,广泛用在各种对MySQL有更高性能.更高可靠性要求的场合.与之对应的是另一个同步技术是MySQ ...
- 【有料】Java线程池实现原理及其在美团业务中的实践
随着计算机行业的飞速发展,摩尔定律逐渐失效,多核CPU成为主流.使用多线程并行计算逐渐成为开发人员提升服务器性能的基本武器.J.U.C提供的线程池:ThreadPoolExecutor类,帮助开发人员 ...
- 深入浅出吃透多线程、线程池核心原理及代码详解
一.多线程详解 1.什么是线程 线程是一个操作系统概念.操作系统负责这个线程的创建.挂起.运行.阻塞和终结操作.而操作系统创建线程.切换线程状态.终结线程都要进行CPU调度--这是一个耗费时间和系统资 ...
- Java线程池实现原理及其在美团业务中的实践(转载加总结)
我们知道线程有5种状态分别是新建,就绪,运行,阻塞,死亡,而对应的线程池也有5种状态RUNNING运行,线程池创建就是该状态,SHUTDOWN 不接受新任务,但是处理已存在的任务,STOP不接受新任务 ...
最新文章
- Spring MVC 学习笔记 对locale和theme的支持
- 指针也是一种数据类型
- (转)类库 框架 模式
- 在新加坡做面试官的经历 (Interviewer Experience for UI/UX Designer in Singapore)
- php作业案例10,5月23日作业——实例演示查询构造器中的10个最常用的方法
- 信号处理:希尔伯特黄变换
- CCIE-LAB-第五篇-SDN-SD-WAN-BGP-OMP(sdwan版的路由协议)
- mysql 中常用的基本操作
- ConcurrentProgramming:volatile/构造方法溢出/禁止重排序
- Atitit 项目源码管理 attilax著 1. 源码结构sdk目录结构	1 1.1. 源码分类,配置文件,主程序文件,sql文件	1 2. 源码管理,提交,更新,与同步	1 2.1. 源码同步
- 2019年数据库系统工程师上午真题及答案解析
- 3 Java学习之 IO
- xgboost early_stop_rounds是如何生效的?
- 怎么用计算机名看地址吗,知道计算机名 肿么查ip
- 音频编码之opus(一)
- linux系统下的打印机驱动下载,方法论:Linux下如何驱动主流品牌打印机
- 蓝绿配色个人岗位竞聘PPT模板
- 国内外经典开源数据大全!
- ECShop开源商城与COS互通:降低本地存储负载、提升访问体验
- 转娃哈哈能不能简单些?
热门文章
- 【数字信号】基于matlab GUI手机拨号音效模拟【含Matlab源码 909期】
- 【语音合成】基于matlab比例重叠相加法信号分帧与还原【含Matlab源码 561期】
- 机器学习 声音 分角色_机器学习对儿童电视节目角色的痴迷
- conda可以更改环境的python anaconda替换环境的Python
- PyTorch1.4安装(Anaconda3 + Python3.6 + cpu版本)
- 随笔记---python ctrl + 移动光标到所用库报错:无法找到要转到的声明
- linux centos7 配置ftp,Linux Centos7配置ftp服务器
- sql统计各科成绩大于平均分的人_SQL第三关:汇总分析
- 第一章计算机基础知识作业答案,计算机基础作业题1答案
- @autowired注解 抽象类_Spring容器注解注入