什么设置了tmpfs的大小?充满后会发生什么?


20

什么设置尺寸tmpfs?(在我的计算机上,它位于/dev/shm)我可以在中看到其条目/etc/fstab,但没有其大小的表示法。使用进行检查时df -h,它似乎是系统中安装的物理内存的一半。这是默认行为吗?

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

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

Answers:


18

什么设置了tmpfs的大小?(在我的机器上,它位于/ dev / shm中)我可以在/ etc / fstab中看到它的条目,但是没有关于它的大小的表示法。

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

size:为此tmpfs实例分配的字节数限制。默认值是不交换的物理RAM的一半。如果您的tmpfs实例过大,则计算机将死锁

(强调我的)

另外,如果装满了怎么办?

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

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

这类似于程序之间的争用。使用最频繁的页面将倾向于在物理内存中,而使用最少的页面将倾向于被换出。

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


如果在tramf的60%处分别安装2个tmpfs,总大小将为120%。两个tmpf都填满到50%时,它是否会死锁?
CMCDragonkai
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.