tmpfs 使用和调整大小

mat*_*isa 11 storage linux memory 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
Run Code Online (Sandbox Code Playgroud)

现在,从我读到的 tmpfs 不占用物理存储,而是使用机器的虚拟内存。这是正确的吗?它是否以任何方式影响物理存储?

是否存在将 tmpfs 写入物理存储的现实?接下来,所有已安装的(/dev/sda1、/dev/sda1 等...)目录是否共享 tmpfs?或者他们每个人都会得到不同的?

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

 mount -o remount,size=1G /dev/shm
Run Code Online (Sandbox Code Playgroud)

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

tmpfs      /dev/shm      tmpfs   defaults,size=1G
Run Code Online (Sandbox Code Playgroud)

进而:

mount -o remount /dev/shm
Run Code Online (Sandbox Code Playgroud)

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

kle*_*erk 6

现在,从我读到的内容来看,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
Run Code Online (Sandbox Code Playgroud)

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

  • 我这样做了: tmpfs /dev/shm tmpfs defaults,size=1G 然后: mount -o remount /dev/shm 并且它起作用了,但是在重新启动时变为原始大小 - 为什么? (2认同)
  • @matisa 因为对挂载点的更改不是持久性的,除非添加到 fstab 或在 systemd 中配置(有些也由 systemd 自动检测) (2认同)
  • 我想我错过了一些东西。这就是我所做的,我添加了 fstab 并将大小设置为 1G。 (2认同)