一尘不染

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

linux

我正在创建在Linux服务器上运行的Web应用程序。该应用程序一直在访问一个250K的文件-
将其加载到内存中,读取并向用户发送一些信息。由于此文件一直被读取,因此我的客户建议使用诸如memcache之类的东西将其缓存到内存中,大概是因为它可以使读取操作更快。

但是,我认为Linux文件系统可能已经在缓存文件,因为它经常被访问。那正确吗?您认为memcache会带来真正的改善吗?还是要做Linux已经做过的事情?

我对Linux和Memcache都不是很熟悉,所以如果有人可以澄清这一点,我将不胜感激。


阅读 379

收藏
2020-06-07

共1个答案

一尘不染

是的,如果您每次打开文件时都没有修改文件。

Linux将文件的信息保存在内存中的“写时复制”页面中,并且将文件“加载”到内存中的速度应该非常快(最坏的情况是页面表交换)。

编辑:尽管,如cdhowie所指出的,没有“
Linux文件系统”。但是,我相信相关代码在linux的内存管理中,因此独立于所讨论的文件系统。如果您好奇,则可以在linux源代码中阅读有关在linux
/ mm / mmap.c中主要处理vm_area_struct对象的信息。

2020-06-07