我目前正在尝试使用不同的方法在 Debian 上使用快速 NVMe 设备提高写入速度到相当大的、基于旋转磁盘的软件 raid (mdadm) 阵列。
我发现使用一对这样的设备(raid1,mirrored)来存储文件系统的日志会产生有趣的性能优势。我用来实现这一点的挂载选项是noatime,journal_aync_commit,data=journal
.
在我的测试中,我还发现添加该barrier=0
选项在写入性能方面具有显着优势。但是,我不确定在我的特定文件系统配置中使用此选项是否安全。这是内核文档中关于 ext4 写屏障的内容:
写屏障强制执行日志提交的正确磁盘顺序,使易失性磁盘写缓存可以安全使用,但会降低一些性能。如果您的磁盘以一种或另一种方式由电池供电,则禁用屏障可以安全地提高性能。
我正在使用的特定 NVMe 设备是Intel DC P3700,它具有内置的断电保护,这意味着在意外关机的情况下,由于备用能量,仍然存在于临时缓冲区中的任何数据都会安全地提交到 NAND 存储贮存。
所以我的问题是,如果日志存储在具有电池支持缓存的设备上,而文件系统本身的其余部分位于没有此功能的磁盘上,我是否可以安全地禁用 ext4 写屏障?