在即将到来的 Linux Kernel 5.10 更新中,对 EXT4 文件系统进行了优化,尤其是改善了某些场景下的文件覆盖特性。在直接访问(DAX)和直接I/O(DIO)模式下,EXT4 iomap 代码会有检查块是否已经被分配的优化。
例如你使用类似于 Intel Optane DCPMM 的永久内存,或者在虚拟机上模拟永久内存,那么在 DAX/DIO 模式下当检测到块已经被分配的情况下(因此是覆盖),映射信息可以立即返回。于多线程覆盖请求,这会带来特别大的性能优化。
IBM 的 Ritesh Harjani 在提案中解释了文件覆盖性能的影:“这可以为多线程写入,特别是随机覆盖提供显著的性能提升。在PPC64虚拟机上,模拟pmem(DAX)设备,随机写入(覆写)的性能提升了10倍左右。也因为这优化了jbd2 slab cache分配过程中的自旋锁争用(jbd2_journal_handle)。在x86虚拟机上,观察到约2倍的perf改进”。