码迷,mamicode.com
首页 > 数据库 > 详细

innodb doublewrite

时间:2018-06-19 11:51:26      阅读:180      评论:0      收藏:0      [点我收藏+]

标签:list   重做   down   rfs   .com   secondary   刷新   内存   img   

 

#努力第6天#innodb_lru_scan_depth每个缓冲池最大脏页刷新页数checkpoint
innodb fuzzy checkpoint
master thread checkpoint
从flush_list中进行刷新
flush_lru_list check point
lru需有差不多100个空闲页
async/sync flush checkpoint 
重做日志重用
dirty page too much checkpoint 
innodb_max_dirty_pages_pct
sharp checkpoint 
将所有的脏页都刷新回磁盘
刷新时系统hang住
innod关闭时使用
innodb_fast_shutdown={1|0

doublewrite
目的:数据写入的可靠性,防止页部分写
partial write
16k的页只写入了4k 6k 8k 12k的情况
不可以通过redo log进行恢复

存在一个段对象doublewrite

2M大小(both file and memory)
刷脏页的时候先把数据写入doublewrite 再写入到磁盘上
写入doublewrite的时候 一次性写2m的数据
性能开销
doublewrite写入是顺序的
性能开销取决于写入量
通常5%到25%
slave服务器考虑是否关闭
innodb_doublewrite
什么时候可以关闭doublewrite
磁盘
Fusion-io
文件系统
ZFS
btrfs
--skip-doublewrite

log sequence number 6531937903
log flushed up to 6531937903
pages flushed up to 6531937903
last checkpoint at 653193789
内存里的lsn
日志写到磁盘上的lsn
页刷新的最新的lsn值 new_modification
页的old _modification
last是flush list刷新的

insert buffer(在共享表空间中 持久化的)
提高辅助索引的插入性能
none unique secondary index
空间换时间 批量插入
先把二级索引缓存在insert buffer里 读到的时候再批量写到索引里
insert buffer潜在问题
最大可以使用二分之一缓冲池内存
innodb_change_buffer_max-size
shutdown不进行insert buffer记录的合并
insert buffer开始进行合并时插入性能开始下降

为的是减少页的随机io,如果页已经在内存里 不用缓存 直接插入
5.5改为change buffer
flush neighbor page
试图刷新页所在区中的所有脏页
传统机械磁盘有效
ssd关闭此功能
mysql 5.6 innodb_flush_neighbors=0

技术分享图片

技术分享图片

 

innodb doublewrite

标签:list   重做   down   rfs   .com   secondary   刷新   内存   img   

原文地址:https://www.cnblogs.com/lvjinping/p/9197614.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!