gpt4 book ai didi

java - Linux : dirty page writeback and concurrent write

转载 作者:太空狗 更新时间:2023-10-29 12:40:24 24 4
gpt4 key购买 nike

背景:在 Java 中,我正在内存映射一个文件(共享)。

我正在该文件的地址 0 写入一些值。我了解到PAGE CACHE中相应的PAGE被标记为DIRTY,稍后将根据dirty_ratio等设置写入。

到目前为止一切顺利。

但我想知道在内核将脏页写回文件时再次写入地址 0 时发生了什么。我的进程是否以某种方式阻塞等待写回完成?

最佳答案

也许吧。仅当设备级 I/O 请求包括校验和以及写入数据时才需要。否则,第一次写入可能会被撕裂,但可以通过第二次写入来纠正。

一如既往,仔细考虑您的安全性,防止电源故障、内核崩溃等。

据称在 btrfs 中避免了等待。 (另外,碰巧在遗留的 ext3 文件系统中。但不是 ext4 或 ext2)。

这看起来有点像一个移动的目标。上面(据我所知)描述了这个“稳定页面写入”代码的第一次优化,在第一次引入时的提示之后。提交描述提到了 future 更改的几种可能性。

  1. bdi: allow block devices to say that they require stable page writes
  2. mm: only enforce stable page writes if the backing device requires it

我的设备当前是否使用“稳定页面写入”?

您可以查看一个名为 stable_pages_required 的 sysfs 属性

关于java - Linux : dirty page writeback and concurrent write,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46913388/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com