Ubuntu

tmpfs 不會溢出來交換

  • December 12, 2021

我是這樣配置tmp的:/etc/fstab

tmpfs /tmp tmpfs defaults,noatime,mode=1777 0 2

問題是現在/tmp限制為機器記憶體的一半,當它達到該限制時,我收到“設備上沒有剩餘空間”錯誤。

我想讓它“無限”,即增長到磁碟的大小。

我得到的印像是您對tmpfs. 您可能會發現閱讀有關該主題的核心文件很有用;我將嘗試在這里為您澄清一些事情。

您的問題標題“tmpfs不會溢出交換”似乎並未反映您問題的實際內容,但無論如何tmpfs確實使用交換,儘管可以說它不會溢出交換。tmpfs本質上是一個(虛擬)基於記憶體的文件系統;它的內容只存在於記憶體中,但由於它們是可交換的,因此核心可以在必要時將它們儲存在交換而不是物理記憶體中。然而tmpfs,文件系統不能大於可用的虛擬記憶體總量,物理 RAM 和交換,.free -h

預設情況下tmpfs,文件系統的最大大小等於可用物理記憶體量的一半。您可以使用該size參數來增加它,但它不能超過可用的物理記憶體和交換(儘管在安裝時不會強制執行該限制)。一旦文件系統達到其最大大小(或者更確切地說,包含佔用那麼多空間的文件),它就會報告它的空間不足,正如您所發現的那樣。tmpfs當空間不足時,它本身不支持在任何地方溢出。

如果您需要大文件的臨時儲存空間,您應該使用/var/tmp而不是/tmp. 你真的不想要一個非常大tmpfs的文件系統,當它填滿時這是一個災難的秘訣(核心恢復記憶體的常用方法在 a 中不起作用tmpfs)。

(當然,如果你有很多 RAM,那麼大的tmpfs也可以工作。我執行了一些系統,其建構tmpfs文件系統的大小為 RAM 的 75%,32GiB、64GiB 甚至更多。)

引用自:https://unix.stackexchange.com/questions/365291