什么设置了 tmpfs 的大小?当它满时会发生什么?

Bic*_*hoy 26 linux swap tmpfs

什么设置的大小tmpfs?(在我的机器上,它驻留在 中/dev/shm)我可以看到它在 中的条目/etc/fstab,但看不到它的大小。检查时df -h,它似乎是系统中安装的物理内存大小的一半。这是默认行为吗?

另外,如果满了会怎样?它是否会动态扩展以迫使其他正在运行的程序进入swaptmpfs本身是否进入swap分区?

最后,什么优先考虑内存tmpfs或应用程序?即,如果我有tmpfs足够的内存(例如 40% 的物理内存)并且我的程序需要 70% 的物理内存,那么哪一个获得优先级?

Bra*_*ley 22

什么设置了 tmpfs 的大小?(在我的机器上,它驻留在 /dev/shm 中)我可以在 /etc/fstab 中看到它的条目,但看不到它的大小。

内核文档涵盖此安装选项下面:

大小:为此 tmpfs 实例分配的字节数限制。默认值为没有交换的物理 RAM 的一半。如果你的 tmpfs 实例过大,机器就会死锁

(强调我的)

另外,如果满了会怎样?

如上所述,如果您对 tmpfs 投入过多,您的机器将会死锁。否则(如果它刚刚达到硬限制)它会像任何其他文件系统一样返回 ENOSPC。

最后,什么优先考虑内存 tmpfs 或应用程序?即,如果我的 tmpfs 足够满(例如 40% 的物理内存)并且我的程序需要 70% 的物理内存,哪一个获得优先级?

这类似于程序之间的争用。最常用的页面往往在物理内存中,而最不常用的页面往往会被换出。

如果您需要确保页面始终在物理内存中,您可以使用 ramfs,它类似但大小固定且不交换。

  • 如果 2 个 tmpfs 分别安装在 60% 的 ram 上,那么总大小将是 120%,会发生什么情况。两个 tmpfs 都填满 50% 时是否会陷入僵局? (3认同)
  • @CMCDragonkai 我尝试填充多个 tmpfs 安装,但机器陷入僵局。 (2认同)
  • 您是否需要重新启动机器? (2认同)