我正在努力理解这些东西。我有一台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
答案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 应用程序最广泛地使用它。 [删除并添加强调]