<分区>
我有一个程序非常频繁地访问文件系统,读取和写入一组工作文件。这些文件的大小为几千兆字节,但还没有大到无法放在 RAM 磁盘上。该程序运行的机器通常是 Ubuntu Linux 盒子。
有没有办法将文件管理器配置为拥有非常非常大的缓存,甚至缓存写入以便稍后写入磁盘?
或者有没有办法创建一个 RAM 磁盘,它可以写入真实磁盘?
<分区>
我有一个程序非常频繁地访问文件系统,读取和写入一组工作文件。这些文件的大小为几千兆字节,但还没有大到无法放在 RAM 磁盘上。该程序运行的机器通常是 Ubuntu Linux 盒子。
有没有办法将文件管理器配置为拥有非常非常大的缓存,甚至缓存写入以便稍后写入磁盘?
或者有没有办法创建一个 RAM 磁盘,它可以写入真实磁盘?
最佳答案
默认情况下,Linux 将使用空闲 RAM(几乎全部)来缓存磁盘访问,并延迟写入。内核用来决定缓存策略的启发式算法并不完美,但在特定情况下击败它们并不容易。此外,在日志文件系统(即现在所有的默认文件系统)上,对磁盘的实际写入将以一种弹性崩溃的方式执行;这意味着一些开销。您可能想尝试摆弄文件系统选项。例如,对于 ext3
,尝试使用 data=writeback
或什至 async
挂载(这些选项可能会提高文件系统性能,但代价是降低对崩溃)。此外,使用 noatime
来减少文件系统事件。
以编程方式,您可能还希望通过内存映射(使用 mmap
)执行磁盘访问。这需要一些动手操作,但它可以更好地控制数据管理和优化。
关于linux - 直写 RAM 磁盘,还是文件系统的海量缓存?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2282276/