从 linux ramdisk 提供 html

StC*_*Cee 6 linux nginx centos ramdisk

我看过一个有点过时的教程,它建议使用这样的 ramdisk 提供 html 文件:

mkfs -q /dev/ram1 102400
Run Code Online (Sandbox Code Playgroud)

我还找到了另一个使用类似内容的来源:

mount -t tmpfs -o size=1024 none /mnt/rds
Run Code Online (Sandbox Code Playgroud)

这两种方法是否同样有效?我在 nginx 上使用 Centos 6.3。所以实际上我想/usr/share/nginx/html从 RAM 中提供文件。

如果我挂载了磁盘,是否必须在原始文件夹发生真正更改时再次挂载?

Mic*_*ton 32

何苦?无论如何,Linux 只是将它们缓存在 RAM 中,第一次从磁盘读取它们。如果它们被足够频繁地读取,它们将始终被缓存

  • 我们在这里通常都是关于实用的解决方案。两种 ramdisk“解决方案”都不像让 Linux 自己处理它那么实用,就像它多年来一直在做的那样。 (11认同)

Dan*_*der 5

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

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

鉴于它真的发生了并且你的记忆太满了:

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

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