正如标题所说,我突然想到,如果我有一个旧的 Mason Web 应用程序,其中基本上有几百个 perl 脚本和磁盘上的组件,如果我将 documentroot 设为 tmpfs,它运行速度会不会更快?
我知道 Mason 做了一些缓存,但是几乎没有解释它有多完整,并且我还假设 Apache 在启动时不会将每个文件加载到内存中。
如果相关的话,debian 上的 apache2。
答案1
当然这不是问题,如果您提供大量静态内容,它应该会显著提高性能(具体数量主要取决于您的 RAM 速度与磁盘速度的快慢)。
如果你这样做,那么在 RAM 中缓存相同的内容就毫无意义了。
由于您的内容主要是动态的(所有这些 perl 脚本),因此大部分开销来自实例化工作程序和运行 perl 解释器,以及 perl 脚本正在执行的操作。将 perl 脚本保存在内存中只会有所帮助,而且 linux(我假设您使用的是 linux)通常会自行缓存此类内容。
如果您通过从文档根目录引用来合并静态内容,您可能会看到加载时间因这些资源的网络性能而提高。
Apache 绝对不会在启动时立即自动将其所有静态内容加载到 RAM 中,尽管可以将其配置为在运行时将其缓存在那里。