Linux IO缓存落盘_linux系统缓存高原因排查

Linux IO缓存落盘_linux系统缓存高原因排查

解决方案goocz2025-02-07 16:33:1411A+A-
















安全的编程方式: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/

点击这里复制本文地址 以上内容由goocz整理呈现,请务必在转载分享时注明本文地址!如对内容有疑问,请联系我们,谢谢!

果子教程网 © All Rights Reserved.  蜀ICP备2024111239号-5