问题:
我们的系统中有两个组件, A 和 B 。 A 处理请求并从中生成文件;对于每个文件,它都会在创建文件时通知 B ,而 B 会读取文件。该文件预计仍将由OS缓存并在不访问硬盘驱动器的情况下被读取。从理论上讲。实际上,只有前304,000个文件位于缓存中,其余文件则不在。同时,不存在物理内存不足的情况-随着 B 继续运行并分配其所需的内存,驻留页面数会增加( B 从 /记录内存统计信息proc / self / stat -从文件缓存停止到RSS结束运行为止增加了13Gb。
如果可以帮助回答我的问题,则文件将由 B 映射,而不被读取,并且 B 在映射后立即关闭文件。
问题:
操作系统(RedHat Linux)是否基于除可用内存以外的内容来限制缓存文件的数量?还是操作系统将文件缓存限制为可用内存的某个百分比,这就是为什么在达到缓存限制时仍为应用程序提供可用内存的原因?
是否可以使OS缓存所有文件?