tmpfs 使用和调整大小

tmpfs 使用和调整大小

我正在努力理解这些东西。我有一台80G存储的机器。看起来像这样:

Filesystem               Size  Used Avail Use% Mounted on
/dev/mapper/centos-root   50G  7.1G   43G  15% /
devtmpfs                 3.9G     0  3.9G   0% /dev
tmpfs                    3.9G  1.4M  3.9G   1% /dev/shm
tmpfs                    3.9G  409M  3.5G  11% /run
tmpfs                    3.9G     0  3.9G   0% /sys/fs/cgroup
/dev/sda1                494M  125M  370M  26% /boot
/dev/mapper/centos-home   26G   23G  3.5G  87% /home
tmpfs                    782M     0  782M   0% /run/user/0

现在,据我所知,tmpfs 不占用物理存储,而是使用机器的虚拟内存。这是对的吗?它会以任何方式影响物理存储吗?

tmpfs 是否真的会被写入物理存储?接下来,所有挂载的(/dev/sda1、/dev/sda1 等)目录是否共享 tmpfs?或者他们每个人都有不同的?

另外,我尝试调整 tmpfs 的大小。我做了:

 mount -o remount,size=1G /dev/shm

重新启动后,它又恢复到原始大小。我像这样更改了 /etc/fstab:

tmpfs      /dev/shm      tmpfs   defaults,size=1G

进而:

mount -o remount /dev/shm

它成功了,但重新启动后又恢复到原来的大小。我想我错过了一些东西。

答案1

现在,据我所知,它tmpfs不占用物理存储,而是使用机器的虚拟内存。这是对的吗?

正确。tmpfs显示为已安装的文件系统,但它存储在易失性存储器中,而不是持久性存储设备中。所以这可以回答您的其他问题。

实际上,您无法分配物理存储,tmpfs因为它仅依赖于虚拟内存。存储在其中的所有内容tmpfs都是临时的,因为不会在硬盘驱动器上创建任何文件。交换空间在内存不足的情况下用作后备存储。重新启动后,所有内容tmpfs都将丢失。

许多 Unix 发行版默认启用并使用文件系统分支或共享内存tmpfs/tmp

根据您的发行版,您可以tmpfs使用/tmp.默认情况下,tmpfs分区的最大大小设置为可用 RAM 的一半,但是可以否决此值并显式设置最大大小。在此示例中,要覆盖默认/tmp安装,请使用size安装选项:

/etc/fstab
tmpfs   /tmp         tmpfs   nodev,nosuid,size=2G          0  0

来源:https://wiki.archlinux.org/index.php/tmpfs

答案2

现在,据我所知,tmpfs 不占用物理存储,而是使用机器的虚拟内存。这是对的吗?它会以任何方式影响物理存储吗? tmpfs 是否真的会被写入物理存储?

嗯,它填充了它所限制的交换区域。看tmpfs 不会溢出交换

接下来,所有挂载的(/dev/sda1、/dev/sda1 等)目录是否共享 tmpfs?或者他们每个人都有不同的?

这取决于tmpfs安装位置。但tmpfs如果这就是你的意思的话,所有的 s 都应该共享相同的内存。

我想我错过了一些东西。

或许https://superuser.com/questions/45342/when-should-i-use-dev-shm-and-when-should-i-use-tmp

最近的 2.6 Linux 内核版本已开始以 ramdisk 的形式提供 /dev/shm 作为共享内存,更具体地说,作为存储在内存中的世界可写目录具有定义的限制/etc/default/tmpfs。 /dev/shm 支持在内核配置文件中是完全可选的。它默认包含在 Fedora 和 Ubuntu 发行版中,其中 Pulseaudio 应用程序最广泛地使用它。 [删除并添加强调]

相关内容