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