学会文件缓存回写的过程

1 文件缓存回写的时机

(1)周期性回写,周期为dirty_wri     te   back_interval,默认5s;

(2)块设备首次出现脏数据;

(3)脏页达到限额,包括dirty_bytes、dirty_background_bytes、dirty_ra     ti   o、dirty_background_ra  TI o;

(4)剩余内存过少,唤醒所有回写线程;

(5)syscall sync,唤醒所有回写线程;

(6)syscall syncfs,同步一个超级快对应的文件系统;

(7)syscall fsync/fdatasync,同步某个文件

(8)laptop模式,完成blk io request之后,启动laptop_mode_wb_  TI mer;

2 回写流程

 学会文件缓存回写的过程_设计制作_MEMS/传感技术

3 dirty_writeback_interval与dirty_ex     pi   re_interval

dirty_writeback_interval是回写线程的循环周期,当然,循环的前提是块设备存在脏数据;

dirty_expire_interval是脏数据的超时时间,超过这个时间的脏数据将会马上放入回写队列,但是这个模式只有一条路径,启用的writeback_work是for_kupdate模式,目前看这条路径只有在周期性回写最后创建一个此类work检查超时脏数据;

周期性回写的流程如下:

bdi_writeback_workfn

--》 wb_do_writeback

--》 wb_writeback

--》 wb_check_old_data_flush

--》 for_kupdate模式wb_writeback

--》 wb_check_background_flush

--》 for_background模式wb_writeback

for_kupdate模式只回写dirty_expire_interval之前的脏数据;

for_background模式回写当前所有脏数据;

从此流程来看,dirty_expire_interval的作用不大,只是作为一种可选模式。

4 系统掉电时最长丢失多少脏数据

从回写周期来看,无论是块设备首先脏数据还是回写线程的循环周期,都是间隔dirty_writeback_interval,它的默认值是5s。但是由于写脏数据的过程并不在这个间隔时间内,所以丢失的数据可能长于5s。

而脏数据的回写采取FIFO的策略,所以最老的数据也不会停留很久,所以这个最长时间可以理解为略大于5s.

72
121
0
54

相关资讯

  1. 1、《南烟斋笔录》片花首秀:刘亦菲甜吻大放送,不要太甜587
  2. 2、《西虹市首富》口碑崩盘的原因找到了,如此创作模式让人心寒694
  3. 3、《流金岁月》弯道超车的好机会,收视率能不能翻身就看这四天2784
  4. 4、4部很火你却连1集都没看的剧,《庆余年》上榜,全看过的是大佬!3278
  5. 5、神奇女侠2片场照曝光,男朋友像个小弟跟在后面,还给女神揉肩膀2532
  6. 6、扎克施奈德新片发片段,赌城大战僵尸夺2亿美金,惊险刺激超过瘾3453
  7. 7、《侏罗纪2》登顶,口碑远逊无限战争,20亿目标泡汤了?2961
  8. 8、38岁张柏芝晒冲浪美照,穿泳衣秀性感身材,修长美腿很抢镜93
  9. 9、尔冬升新片《海的尽头是草原》开机陈宝国马苏阿云嘎等主演亮相1098
  10. 10、《唐人街探案3》导演陈思诚:为“唐探宇宙”拓边4512
全部评论(0)
我也有话说
0
收藏
点赞
顶部