Linux文件系统是否由磁盘自动备份但完全托管在内存中?

Mik*_*eck 7 linux filesystems

我必须对一大堆文件进行大量的随机访问.我有足够的主内存来容纳所有数据.

当我将数据复制到临时ramfs文件系统并在那里进行处理时,这只需要等待磁盘访问的一小部分时间.

是否有一个Linux文件系统将所有数据保存在主内存中,将任何更改写入后备磁盘,但从不接触磁盘进行任何读取?

如果没有,可以说,可以调整ext3缓存,以确保它们能够保存100%的数据和元数据吗?

Dav*_*veR 8

如果您只是读取数据,那么您确实可以调整缓存,以便所有数据都缓存在RAM中 - 有关您可以在此调整的内容的详细信息,请参阅/ usr/src/linux/Documentation/sysctl/fs.txt vm.txt.写入数据时会出现问题,特别是如果使用fsync()或类似数据以确保数据已提交到实际磁盘.

由于操作系统必须在a的情况下更新磁盘,fsync()如果你仍然想确保你的数据是一致的并且不会在断电时丢失,那么你就无法做到.

您可能遇到的一个问题是atime访问时间 - 默认情况下,每次访问文件时都会在inode中更新访问时间.即使您认为自己只执行读取操作,也会导致磁盘写入.在您访问许多小文件的场景中,这可能是一个特殊问题.如果您不关心跟踪访问时间,可以使用以下命令挂载文件系统noatime以禁用此"功能".


Ste*_*ini 1

为什么不尝试在 ramdisk 和物理磁盘之间创建 RAID 镜像呢?

但不确定它是否有效。如果镜像必须始终同步,那么在写入时无论如何它都必须等待磁盘,但在读取时您应该有所收获。但是,是的,对我来说,它看起来非常复杂,重新发明了方形 IO 缓存:)

不过,这将是一个很好的实验。