mysql-5.7 innodb_buffer_pool刷新机制详解
一、innodb的脏页刷新机制说明:
1、当innodb中的脏页比例超过innodb_max_dirty_pages_pct_lwm的值时,这个时候innodb就会开始刷新脏页到磁盘。
2、当innodb中的脏页比例超过innodb_max_dirty_pages_pct_lwm的值,而且还超过innodb_max_dirty_pages_pct时
innodb就会进入勤快刷新模式(agressively flush)这个模式下innodb会把脏页更快的刷新到磁盘。
3、还有一种情况叫做sharp checkpoint ,当innodb要重用它之前的redo文件时,就会把innodb_buffer_pool中所有与这
个文件有关的页面都要刷新到磁盘;这样做就有可能引起磁盘的IO风暴了,轻者影响性能,重者影响可用性。
二、对上面机制的再次说明:
1、脏页刷新是innodb后台执行的确定性工作,默认情况下每秒都会有(check point);innodb的脏页刷新就有点像现实生
活中的呼吸一样,通常是以固定的频率进行的,一.1 就好比是安静的情况下,一.2就好比是运动的情况下,一.3就好比
你在水中闭气一分中后刚探出头一样。
三、对于控制刷新机制的各个参数的说明:
1、innodb_max_dirty_pages_pct默认值为75,也就是说当脏页比例超过75%时才会进入勤快刷新模式。
2、innodb_max_dirty_pages_pct_lwm默认值是0,0对于innodb_max_dirty_pages_pct_lwm来说是一个特殊值,它表示
不启用这个功能;由于没有启用这个功能,也就是说innodb_buffer_pool中的脏页比例会操持在75%左右。
四、一.3的情况MySQL如何解决:
1、对于第三种情况MySQL的解决思路是这样的,IO风暴是由redo 文件重用时要刷新整个redo文件对应的innodb_buffer_pool页面,
也就是说风暴发生的时刻是重用redo日志是发生的;针对这一问题Mysql的解决方案是根据redo的生成速率,实时的刷新
innodb_buffer_pool中的页面到磁盘,这样在redo日志文件重用时就不要刷新过多的页面,也就没有IO风暴了。由于页面的刷新
是根据redo的生成速率自动调整的,所以这个方案的名字叫innodb_adaptive_flushing;
2、由于innodb_adaptive_flushing 会自动的刷新,它基本上把一.1中的情况也给解决了,所以默认情况下mysql会把
innodb_max_dirty_pages_pct_lwm=0,0在这里是一个特殊值,在这里表示关闭的意思。
----
学习交流

mysql-5.7 innodb_buffer_pool刷新机制详解的更多相关文章
- (转)MySQL性能调优my.cnf详解
		
MySQL性能调优my.cnf详解 https://blog.linuxeye.cn/379.html http://blog.csdn.net/orichisonic/article/details ...
 - 浏览器 HTTP 协议缓存机制详解
		
最近在准备优化日志请求时遇到了一些令人疑惑的问题,比如为什么响应头里出现了两个 cache control.为什么明明设置了 no cache 却还是发请求,为什么多次访问时有时请求里带了 etag, ...
 - MySQL数据库使用mysqldump导出数据详解
		
mysqldump是mysql用于转存储数据库的实用程序.它主要产生一个SQL脚本,其中包含从头重新创建数据库所必需的命令CREATE TABLE INSERT等.接下来通过本文给大家介绍MySQL数 ...
 - nginx平台初识(二) 浏览器 HTTP 协议缓存机制详解
		
1.缓存的分类 缓存分为服务端侧(server side,比如 Nginx.Apache)和客户端侧(client side,比如 web browser). 服务端缓存又分为 代理服务器缓存 和 反 ...
 - 【转】MySQL用户管理及SQL语句详解
		
[转]MySQL用户管理及SQL语句详解 1.1 MySQL用户管理 1.1.1 用户的定义 用户名+主机域 mysql> select user,host,password from mysq ...
 - MySQL数据库的各种存储引擎详解
		
原文来自:MySQL数据库的各种存储引擎详解 MySQL有多种存储引擎,每种存储引擎有各自的优缺点,大家可以择优选择使用: MyISAM.InnoDB.MERGE.MEMORY(HEAP).BDB ...
 - PHP缓存机制详解
		
一,PHP缓存机制详解 我们可以使用PHP自带的缓存机制来完成页面静态化,但是仅靠PHP自身的缓存机制并不能完美的解决页面静态化,往往需要和其他静态化技术(通常是伪静态技术)结合使用. output ...
 - (转)总结之:CentOS 6.5 MySQL数据库的基础以及深入详解
		
总结之:CentOS 6.5 MySQL数据库的基础以及深入详解 原文:http://tanxw.blog.51cto.com/4309543/1395539 前言 早期MySQL AB公司在2009 ...
 - 二,PHP缓存机制详解
		
一,PHP缓存机制详解 我们可以使用PHP自带的缓存机制来完成页面静态化,但是仅靠PHP自身的缓存机制并不能完美的解决页面静态化,往往需要和其他静态化技术(通常是伪静态技术)结合使用. output ...
 
随机推荐
- Convert CString to ANSI string in UNICODE projects
			
Convert CString to ANSI string in UNICODE projects Quick Answer: use an intermediate CStringA. Norma ...
 - [Algorithm] Given the root to a binary tree, return the deepest node
			
By given a binary tree, and a root node, find the deepest node of this tree. We have way to create n ...
 - jquery ui autocomplete 模拟百度搜索自动提示
			
直接上代码 <!DOCTYPE html> <html lang="zh-cn"> <head> <meta charset=" ...
 - DevExpress学习03——label控件的背景色问题
			
今天使用了DevExpress的labelControl,发现拖放上去,其背景色和主窗体的背景一样,非常不谐调,把BackColor设置为透明也不行(Windows中的Label可以). 没有办法,我 ...
 - ZH奶酪:Linux新建用户+远程登录
			
7.想在VBUbuntu中新建一个账户,但是用useradd命令发现没有权限,原来Ubuntu默认不是root权限登录,需要按照下边的教程才能新建用户. http://www.linuxidc.com ...
 - Linux获得命令帮助(学习笔记五)
			
一.获得命令帮助 1.1.内部命令与外部命令 简单来说,在linux系统中有存储位置的命令为外部命令: 没有存储位置的为内部命令,可以理解为内部命令嵌入在linux的shell中,所以看不到. typ ...
 - windows下npm默认的全局路径
			
C:\Users\用户名\AppData\Roaming\npm\node_modules
 - Android自动填写获取到的验证码
			
Android需要添加的相关权限 <uses-permission android:name="android.permission.RECEIVE_SMS">< ...
 - hdu 5055(坑)
			
题目链接:http://acm.hdu.edu.cn/showproblem.php? pid=5055 Bob and math problem Time Limit: 2000/1000 MS ( ...
 - 基于jquery ui修改的不依赖第三方的背景透明的弹出div
			
效果图: 代码: <!doctype html> <html> <head> <meta charset="utf-8"> < ...