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

CMC*_*kai 8 linux tmpfs ram

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

另外,如果我有多个 tmpfs,每个设置为 50%。多个 tmpfs 是否相互竞争相同的 50%?操作系统如何管理它?

cha*_*aos 7

如果您tmpfs使用百分比挂载实例,它将占用系统物理内存的百分比大小。例如,如果您有 2gb 的物理内存,并且您安装了tmpfs50% 的内存,那么您tmpfs将拥有 1gb 的大小。在您的场景中,您向系统添加物理内存,假设另一个 2GB,您的系统有 4GB 的物理内存。安装 tmpfs 时,它现在的大小为 2gb。

tmpfs以 50% 设置安装每个实例的多个实例时,它将起作用。如果both tmpfs实例被完全填满,系统将换出较少使用的页面。如果交换空间也已满,则会出现No space left on device错误。

编辑

tmpfs仅使用占用的内存量,而不是全部 50%。因此,如果仅占用 1gb 中的 10mb,则您的tmpfs实例仅占用那 10mb。它不是保留的,而是动态的。对于 50% 的多个实例,第一个需要内存的实例会获得内存。系统交换较少使用的页面,如果 50% 被占用与否。该tmpfs实例并不知道它是否使用物理内存或交换空间的事实。tmpfs如果你愿意,你可以安装一个100GB 的,它会工作。

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

来源