![当 RAM 数量变化时 tmpfs 是否会自动调整大小,并且当存在多个 tmpfs 时它是否会竞争?](https://linux22.com/image/37668/%E5%BD%93%20RAM%20%E6%95%B0%E9%87%8F%E5%8F%98%E5%8C%96%E6%97%B6%20tmpfs%20%E6%98%AF%E5%90%A6%E4%BC%9A%E8%87%AA%E5%8A%A8%E8%B0%83%E6%95%B4%E5%A4%A7%E5%B0%8F%EF%BC%8C%E5%B9%B6%E4%B8%94%E5%BD%93%E5%AD%98%E5%9C%A8%E5%A4%9A%E4%B8%AA%20tmpfs%20%E6%97%B6%E5%AE%83%E6%98%AF%E5%90%A6%E4%BC%9A%E7%AB%9E%E4%BA%89%EF%BC%9F.png)
如果我将 tmpfs 设置为 50%,然后添加或删除 RAM,tmpfs 是否会自动调整其分区大小?
另外,如果我有多个 tmpfs,每个都设置为 50%,该怎么办?多个 tmpf 是否会相互竞争同一个 50%?操作系统如何管理它?
答案1
如果您tmpfs
以百分比挂载实例,它将占用系统大小的百分比物理内存。例如,如果您有 2GB 物理内存,并且安装了tmpfs
50%,那么您的tmpfs
内存大小将为 1GB。在您的场景中,您向系统添加物理 RAM,假设另外 2GB,则您的系统有 4GB 物理 RAM。安装 tmpfs 时,它的大小现在为 2GB。
当安装多个实例且tmpfs
每个实例设置为 50% 时,它将起作用。如果both tmpfs
实例已完全填满,系统将交换较少使用的页面。如果交换空间也已满,则会出现No space left on device
错误。
编辑:
tmpfs
仅使用占用的内存量,而不是全部 50%。因此,如果仅占用 1GB 中的 10MB,则您的tmpfs
实例仅占用这 10MB。它不是不保留的,而是动态的。当多个实例达到 50% 时,第一个需要内存的实例将获得内存。无论 50% 是否被占用,系统都会交换较少使用的页面。实例tmpfs
不知道它是否使用物理内存或交换空间。如果你愿意的话,你可以安装一个tmpfs
100GB 的,它会工作的。
我假设您在添加内存之前关闭了系统。所以tmpfs
无论如何都会在启动时重新安装。如果在系统运行时添加内存,您将炒公羊,主板很可能是你手上的。我真的不能推荐:-)
来源: