日志中的数据什么时候写入磁盘?

Pra*_*ati 7 linux defragment

(1) 提到“有了日志,文件首先写入日志,打孔,然后日志在准备好时将文件写入磁盘。一旦成功写入磁盘,它就会从日志中删除,打孔,操作完成。”

因此,当我创建一个文件时,它会写入日志并稍后写入磁盘。如果我创建一个 1MB 的文件,它们实际上将 2MB 的数据写入磁盘,1MB 写入日志,然后再写入磁盘。这实际上可能会缩短磁盘的使用寿命。我的问题是日志中的数据什么时候转移到磁盘?如果没有立即完成,则无法对磁盘中的数据进行后续读取。另外,当数据写入日志或磁盘时,对用户的写入是否完成?

此外,还提到由于日志记录,某些文件系统中的碎片整理较少。磁盘碎片整理与日志有什么关系?

(1) http://www.howtogeek.com/howto/33552/htg-explains-which-linux-file-system-should-you-choose/

Dan*_*ruz 1

日志中的数据什么时候传输到磁盘?

取决于两个主要因素:使用的文件系统和物理存储设备。XFS使用写屏障EXT3使用写屏障(如果启用)默认情况下,EXT4具有屏障。传统 HDD 使用缓存固态硬盘可能有也可能没有缓存。最终,它是操作系统、文件系统以及底层硬件架构和规范的组合,决定了数据何时保留在存储设备上。

当数据写入日志或磁盘时,对用户来说写入完成了吗?

这还取决于所使用的应用程序和您的操作系统。Linux 具有fsync应用程序和文件系统用于将缓存数据刷新到物理设备的系统调用。并非所有应用程序都会fsync将缓存数据显式刷新到存储中。您始终可以发出sync 命令来手动刷新文件系统缓冲区。

磁盘碎片整理与日志有何关系?

磁盘碎片会影响性能,尤其是在处理块不连续的大文件时。有不同的技术可以减少碎片。例如,XFS 和其他文件系统使用allocate-on-flush技术来最大限度地减少碎片。

  • 尽管发帖者将此标记为答案,但这根本没有解决问题:缓存指的是内存缓冲区和延迟写入,因此与日志记录无关。 (2认同)