当 RAM 数量变化时 tmpfs 是否会自动调整大小,并且当存在多个 tmpfs 时它是否会竞争?

当 RAM 数量变化时 tmpfs 是否会自动调整大小,并且当存在多个 tmpfs 时它是否会竞争?

如果我将 tmpfs 设置为 50%,然后添加或删除 RAM,tmpfs 是否会自动调整其分区大小?

另外,如果我有多个 tmpfs,每个都设置为 50%,该怎么办?多个 tmpf 是否会相互竞争同一个 50%?操作系统如何管理它?

答案1

如果您tmpfs以百分比挂载实例,它将占用系统大小的百分比物理内存。例如,如果您有 2GB 物理内存,并且安装了tmpfs50%,那么您的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不知道它是否使用物理内存或交换空间。如果你愿意的话,你可以安装一个tmpfs100GB 的,它会工作的。

我假设您在添加内存之前关闭了系统。所以tmpfs无论如何都会在启动时重新安装。如果在系统运行时添加内存,您将炒公羊,主板很可能是你手上的。我真的不能推荐:-)

来源:

相关内容