fsync系统如何在linux中调用?
发布时间:2020-12-13 16:59:46 所属栏目:Linux 来源:网络整理
导读:当写入调用返回时,数据被复制到由内核管理的某个页面上.该页面可以包含来自多个进程的写入.因此,当其中一个应用程序发出fsync调用时,这会导致刷新整个页面,这也意味着刷新其他应用程序数据,但是调用fsync的进程会产生成本.它是否正确? 解决方法 fsync在单个
当写入调用返回时,数据被复制到由内核管理的某个页面上.该页面可以包含来自多个进程的写入.因此,当其中一个应用程序发出fsync调用时,这会导致刷新整个页面,这也意味着刷新其他应用程序数据,但是调用fsync的进程会产生成本.它是否正确?
解决方法
fsync在单个文件上运行.它将刷新对该文件所做的所有更改.如果多个进程写入单个文件,则将暂停进行fsync调用的进程,直到所有更改都写入磁盘.
当一些日志文件系统发挥作用时,这会更复杂.例如,具有“有序”模式的ext3和ext4(在较小程度上)需要刷新日志中fsync文件之前的所有文件的所有更改. 这意味着如果程序已经写入大型数据库或大型日志文件或视频文件,然后您同步fsync两行配置文件,则fsync必须等待所有这些兆字节的数据在返回之前写入. 这就是为什么我在“回写”模式下运行我的ext4,这可能会在崩溃后产生一些令人不快的后果,例如正确大小但填充零的文件.但在正常操作中,“回写”的速度要快得多,我觉得这种权衡是值得的. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
推荐文章
站长推荐
- linux常用命令---------------find
- linux – 在Ubuntu 8.04服务器上安装Python 2.6的
- gzip命令_Linux gzip命令:压缩和解压文件(.gz文
- memory-management – 从内核模块更改用户空间内
- Linux Centos7 keepalived + nginx负载均衡
- linux – 如何使用bitbake / yocto指定要构建的内
- linux – 为什么df命令可以快速返回磁盘使用率而
- linux – 清理服务器的历史记录时,删除/ var / l
- linux – 我有一个密钥对.如何确定密钥长度?
- linux – 检查特定用户的特定目录的总文件大小
热点阅读