Linux IO缓存落盘


Linux IO缓存落盘

文章插图
 

Linux IO缓存落盘

文章插图
 

Linux IO缓存落盘

文章插图
 

Linux IO缓存落盘

文章插图
 

Linux IO缓存落盘

文章插图
 

Linux IO缓存落盘

文章插图
 

Linux IO缓存落盘

文章插图
 

Linux IO缓存落盘

文章插图
 

Linux IO缓存落盘

文章插图
 

Linux IO缓存落盘

文章插图
 

Linux IO缓存落盘

文章插图
 

Linux IO缓存落盘

文章插图
 

Linux IO缓存落盘

文章插图
 

Linux IO缓存落盘

文章插图
 

Linux IO缓存落盘

文章插图
 
安全的编程方式:fopen() -> fflush() -> fsync() -> fclose()
确保数据落盘的几种方法:
1.open(O_DIRECT):write/read时,文件系统的IO会绕过cache直接操作磁盘IO;
2.open(O_SYNC):确保每一笔IO都是同步落盘的,相当于是每次write后自动调用fsync;
3.open(O_DSYNC):相当于是每次write后自动调用fdatasync;
4.fsync: write后调用fsync刷新文件数据+元数据缓冲区;
5.fdatasync: write后调用fdatasync刷新文件数据;
6.sync: 标准IO后调用sync强制刷新内核缓冲区到磁盘,linux是文件真正落盘后才会返回;
7.msync: 通过mmap函数把文件映射到进程的地址空间,读写进程内存的地址的数据其实是转发到磁盘上去读写,write后调用msync强制刷盘 。
Ensuring data reaches disk https://lwn.net/Articles/457667/
深入理解 Linux的I/O 系统
https://view.inews.qq.com/a/20211216A01H5600
怎么才能保证 IO 数据的安全
https://blog.csdn.net/FL63Zv9Zou86950w/article/details/116505686
缓存技术及算法策略简介
http://www.xupifu.com/2017/01/19/cache-introduction/

【Linux IO缓存落盘】


    推荐阅读