Linux文件系统是否有效地缓存文件?

lau*_*ent 21 linux filesystems memcached

我正在创建一个在Linux服务器上运行的Web应用程序.应用程序不断访问250K文件 - 它将其加载到内存中,读取并将一些信息发送回用户.由于这个文件一直被读取,我的客户端建议使用像memcache这样的东西将它缓存到内存中,大概是因为它会使读取操作更快.

但是,我认为Linux文件系统可能已经将文件缓存在内存中,因为它经常被访问.是对的吗?在您看来,memcache会提供真正的改进吗?或者它会做与Linux已经做的相同的事情?

我对Linux和memcache都不熟悉,所以如果有人能澄清这一点,我真的很感激.

Rob*_*tin 20

是的,如果每次打开文件时都不修改文件.

Linux将把文件的信息保存在内存中的copy-on-write页面上,并且将文件"加载"到内存中应该非常快(最坏的页表交换).

编辑:虽然,正如cdhowie指出的那样,没有'linux filesystem'.但是,我相信相关的代码是在linux的内存管理中,因此独立于所讨论的文件系统.如果您很好奇,可以在linux源代码中阅读有关在linux/mm/mmap.c中处理vm_area_struct对象的内容.

  • 要添加答案,您可以使用`vmtouch`来确保文件在内存中.此链接说明:http://hoytech.com/vmtouch/实际上,您可以使用`vmtouch`强制文件始终保存在文件系统缓存中.请参阅上面的链接. (4认同)