Linux
什麼設置了 tmpfs 的大小?當它滿了會發生什麼?
什麼設置的大小
tmpfs
?(在我的機器上,它位於/dev/shm
)我可以看到它在 中的條目/etc/fstab
,但看不到它的大小。檢查時df -h
,它似乎是系統中安裝的物理記憶體大小的一半。這是預設行為嗎?另外,如果滿了怎麼辦?它是否會動態擴展以強制其他正在執行的程序進入
swap
?本身是否tmpfs
移動到swap
分區中?
tmpfs
最後,記憶體或應用程序的優先級是什麼?即,如果我有tmpfs
足夠的空間(比如 40% 的物理記憶體)並且我的程序需要 70% 的物理記憶體,那麼哪一個優先?
什麼設置了 tmpfs 的大小?(在我的機器上,它位於 /dev/shm 中)我可以在 /etc/fstab 中看到它的條目,但看不到它的大小。
核心文件在掛載選項下對此進行了介紹:
> > size:為此 tmpfs 實例分配的字節數限制。**預設值為沒有交換的物理 RAM 的一半。**如果您的 tmpfs 實例過大,機器將死鎖 > > >
(強調我的)
另外,如果滿了怎麼辦?
如上所述,如果您對 tmpfs 投入過多,您的機器將會死鎖。否則(如果它剛剛達到硬限制)它會像任何其他文件系統一樣返回 ENOSPC。
最後,記憶體 tmpfs 或應用程序的優先級是什麼?即,如果我的 tmpfs 足夠滿(比如 40% 的物理記憶體)並且我的程序需要 70% 的物理記憶體,那麼哪一個優先?
這類似於程序之間的爭用。最常用的頁面將傾向於在物理記憶體中,而最少使用的頁面將傾向於被換出。
如果您需要確保頁面始終在物理記憶體中,您可以使用類似但大小固定且不交換的 ramfs。