Page Cache同步-学习笔记

以下均为自己整理的资料

通常Cache 的同步方式有两种,写穿和写回,对应Linux的Page Cache 上所谓的写穿就是write () 操作将数据拷贝到页缓存后立即和下层进行同步的写操作,完成下层的更新之后返回,写回正好相反,指的是写完Page Cache直接返回,Page Cache 到下层的更新操作是异步进行的.

Linux 下的 Buffered IO 默认使用回写机制Page Cache 被修改的内存页称之为脏页,脏页在特定的时候会被pdflush的内核线程写入磁盘,写入的时机和条件如下:

  • 当空闲内存低于一个特定的值,内核必须将脏页返回磁盘,释放内存
  • 脏页在内存中驻留时间超过一个阀值,内核必须将超时的脏页写回磁盘
  • 用户进行sync,fsync,fdatasync系统调用,内核会执行写回操作

条件 我们可以 通过执行 sysctl -a | grep dirty来进行查看

vm.dirty_background_ratio = 10
//脏页超百分之十进行写回
vm.dirty_expire_centisecs = 1500
//驻留15秒进行flush写入
vm.dirty_writeback_centisecs = 1500
//内存中驻留15秒进行flush

默认是写回方式,那如果我们想立马落到磁盘上怎么做?除了前文提及的fsync之类的系统调用,在open打开文件,传入O_SYNCflag即可.

参考资料

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值