tmpfs 在 Debian 中如何工作?

Sha*_*Xie 2 linux debian tmpfs

我运行 df -h 并在我的 Debian Squeeze 上找到两个 tmpfs 目录,

tmpfs                 1.5G     0  1.5G   0% /lib/init/rw
tmpfs                 1.5G     0  1.5G   0% /dev/shm
Run Code Online (Sandbox Code Playgroud)

然后,我在 /etc/fstab 中添加了一行,如下所示,

tmpfs   /tmp    tmpfs   size=1g     0 0
Run Code Online (Sandbox Code Playgroud)

我重新启动了 Debian 并发现 /tmp 安装成功。

tmpfs                 1.0G  236K  1.0G   1% /tmp
tmpfs                 1.5G     0  1.5G   0% /lib/init/rw
tmpfs                 1.5G     0  1.5G   0% /dev/shm
Run Code Online (Sandbox Code Playgroud)

我的物理内存大小是 3GB。我想知道:这三个 tmpfs 是全部驻留在内存中(这可能吗?)还是扩展到交换?

jti*_*man 5

有关 tmpfs 的综合信息可以在IBM DeveloperWorks上找到。简而言之,tmpfs 也可以使用交换,而 ramfs 设备只是内存。我建议您在有时间的时候阅读 DeveloperWorks 文章,它非常详细,是我读过的最好的文章之一。

至于/dev/shm具体而言,它是有POSIX标准; Debian 在标准合规性方面非常出色。来自Red Hat 邮件列表帖子

/dev/shm 用于兼容 POSIX 的共享内存,很少有应用程序甚至需要/使用它。

  • 如果存在,PulseAudio 将使用`/dev/shm`。http://linux.die.net/man/1/pulseaudio (2认同)

Pel*_*ier 5

我的物理内存大小是 3GB。我想知道:这三个 tmpfs 是全部驻留在内存中(这可能吗?)还是扩展到交换?

tmpfs 仅在您用文件填充内存时使用内存。所以只要它是空的,它就几乎不会占用 RAM 中的空间。