首页 > 解决方案 > Linux如何为文件缓存分配内存?

问题描述

问题:

我们的系统中有两个组件ABA处理请求并从中生成文件;对于每个文件,它会在文件创建时通知B ,然后B读取文件。该文件预计仍会被操作系统缓存,并且无需访问硬盘即可读取。这是理论上的。实际上,只有前 304,000 个文件在缓存中,其余文件不在。同时,不存在物理内存不足 - 随着B继续运行并为其需要分配内存,驻留页数增加(B从/proc/self/stat记录内存统计信息- 从文件缓存停止到运行结束的那一刻,RSS 增加了 13Gb)。

如果它可以帮助回答我的问题,则文件由B映射,而不是读取,并且B在映射后立即关闭文件。

问题:

操作系统(RedHat Linux)是否根据可用内存以外的内容限制缓存文件的数量?或者操作系统是否将文件缓存限制为可用内存的某个百分比,这就是为什么在达到缓存限制时仍有内存可供应用程序使用?

是否有可能以及如何使操作系统缓存所有文件?

标签: linuxfilecaching

解决方案


推荐阅读