fsync系统如何在linux中调用?

fsync系统如何在linux中调用?,第1张

概述当写入调用返回时,数据被复制到由内核管理的某个页面上.该页面可以包含来自多个进程的写入.因此,当其中一个应用程序发出fsync调用时,这会导致刷新整个页面,这也意味着刷新其他应用程序数据,但是调用fsync的进程会产生成本.它是否正确? fsync在单个文件上运行.它将刷新对该文件所做的所有更改.如果多个进程写入单个文件,则将暂停进行fsync调用的进程,直到所有更改都写入磁盘. 当一些日志文件系 当写入调用返回时,数据被复制到由内核管理的某个页面上.该页面可以包含来自多个进程的写入.因此,当其中一个应用程序发出fsync调用时,这会导致刷新整个页面,这也意味着刷新其他应用程序数据,但是调用fsync的进程会产生成本.它是否正确?解决方法 fsync在单个文件上运行.它将刷新对该文件所做的所有更改.如果多个进程写入单个文件,则将暂停进行fsync调用的进程,直到所有更改都写入磁盘.

当一些日志文件系统发挥作用时,这会更复杂.例如,具有“有序”模式的ext3和ext4(在较小程度上)需要刷新日志中fsync文件之前的所有文件的所有更改.

这意味着如果程序已经写入大型数据库或大型日志文件或视频文件,然后您同步fsync两行配置文件,则fsync必须等待所有这些兆字节的数据在返回之前写入.

这就是为什么我在“回写”模式下运行我的ext4,这可能会在崩溃后产生一些令人不快的后果,例如正确大小但填充零的文件.但在正常 *** 作中,“回写”的速度要快得多,我觉得这种权衡是值得的.

总结

以上是内存溢出为你收集整理的fsync系统如何在linux中调用?全部内容,希望文章能够帮你解决fsync系统如何在linux中调用?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/1039909.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-24
下一篇 2022-05-24

发表评论

登录后才能评论

评论列表(0条)

保存