从 Linux ramdisk 提供 HTML 服务

从 Linux ramdisk 提供 HTML 服务

我曾经见过一个有点过时的教程,建议使用 ramdisk 提供 html 文件,如下所示:

mkfs -q /dev/ram1 102400

我还发现另一个来源使用了类似的东西:

mount -t tmpfs -o size=1024 none /mnt/rds

这两种方法同样有效吗?我使用的是带有 nginx 的 Centos 6.3。因此实际上我想/usr/share/nginx/html从 RAM 中提供文件。

如果我安装了磁盘,那么当原始文件夹发生真正的变化时,我是否必须再次安装?

答案1

从你的问题(最后一段)来看,我假设你认为 ramdrive 将具有与下面的原始文件系统相同的内容。事实并非如此。你将有一个空目录,需要先填充它。我不认为这是你想要的。

Linux 有一个非常好的缓存系统。每个未用于应用程序内存的内存页都将用作缓存。这意味着:即使没有 tmpfs(我推荐的方法),您的文件也会留在内存中,直到真正需要从那里刷新它为止。

假设这确实发生了并且你的内存已满:

  • 如果您使用 tmpfs,您的 tmpfs 内容将移动到您的交换内存,这意味着,它也保存在磁盘上,并且速度并不比使用真实文件系统更快。
  • 如果您不使用 tmpfs,您的缓存版本将从内存中刷新,这几乎不消耗时间。下次访问时,它将从磁盘读取并返回到缓存中。

因此,只要您不在很短的时间间隔内动态生成这些文件,我认为使用 tmpfs 没有任何优势。如果让 Linux 决定内存使用和交换,它通常会更高效。

答案2

为什么要费心呢?Linux 无论如何都会在第一次从磁盘读取时将它们缓存在 RAM 中。如果读取频率足够高它们将始终被缓存

答案3

tmpfs 方法的开销较少。在 /dev/ram1 示例中,您有一个完整的文件系统,其中的 inode、目录等都存储在块设备中。使用 tmpfs 时,它本质上只是磁盘缓存。

是的,如果您创建了一个 ramdisk 并将文件复制到其中,则每当有更改时,您都需要再次复制这些文件。

答案4

不用说,使用 RAM 磁盘是一个好主意:我记得曾经阅读过一篇文章(不幸的是手头没有 URL)关于对两种 RAM 磁盘进行基准测试,结果令人惊讶地显示出相关差异(我已经忘记哪种更好)。

相关内容