tmpfs 和 devtmpfs 是否共享相同的記憶體區域?
我的系統盤使用情況是這樣的:
# df -h Filesystem Size Used Avail Use% Mounted on /dev/mapper/rhel-root 50G 39G 12G 77% / devtmpfs 5.8G 0 5.8G 0% /dev tmpfs 5.8G 240K 5.8G 1% /dev/shm tmpfs 5.8G 50M 5.8G 1% /run tmpfs 5.8G 0 5.8G 0% /sys/fs/cgroup /dev/mapper/rhel-home 1.3T 5.4G 1.3T 1% /home /dev/sda2 497M 212M 285M 43% /boot /dev/sda1 200M 9.5M 191M 5% /boot/efi tmpfs 1.2G 16K 1.2G 1% /run/user/1200 tmpfs 1.2G 16K 1.2G 1% /run/user/1000 tmpfs 1.2G 0 1.2G 0% /run/user/0
我對和有
2
疑問: (1)devtmpfs``tmpfs
devtmpfs 5.8G 0 5.8G 0% /dev tmpfs 5.8G 240K 5.8G 1% /dev/shm tmpfs 5.8G 50M 5.8G 1% /run tmpfs 5.8G 0 5.8G 0% /sys/fs/cgroup
以上所有的空間都是
5.8G
,它們共享相同的記憶體空間嗎?(2)
tmpfs 1.2G 16K 1.2G 1% /run/user/1200 tmpfs 1.2G 16K 1.2G 1% /run/user/1000 tmpfs 1.2G 0 1.2G 0% /run/user/0
每個使用者是否都有自己的專用記憶體空間,而不是
/run/user
分區中的共享空間?
對於所有 tmpfs 掛載,“可用”是人為限制。tmpfs 掛載的預設大小是 RAM 的一半。它可以在安裝時進行調整。(
man mount
, 滾動到tmpfs
)。掛載不共享相同的空間,因為如果您填充了
/dev/shm
掛載,則/dev
不會再顯示“已使用”,也不一定會阻止您將數據寫入/dev
(有人可以
tmpfs
通過從單個 tmpfs 綁定掛載來設計共享空間的掛載。但這不是預設設置這些掛載的方式)。它們確實共享相同的空間,因為它們都由系統記憶體支持。如果您嘗試同時填充
/dev/shm
和/dev
,您將分配與物理 RAM 相等的空間。假設您有交換空間,這是完全可能的。然而,這通常不是一個好主意,而且結局很糟糕。這不適合擁有多個使用者可訪問的 tmpfs 掛載的想法。即
/dev/shm
+/tmp
在許多系統上。如果兩個大型坐騎共享相同的空間,可以說會更好。(Posix SHM 實際上是一個在使用者可訪問的 tmpfs 上打開文件的介面)。
/dev/
,/run
,/sys/fs/cgroups
是系統目錄。它們應該很小,不用於大量數據,因此不會引起問題。Debian (8) 似乎更擅長為它們設置限制;在 500MB 的系統上,我看到它們分別限制為 10、100、250 MB 和另外 5 個/run/lock
。
/run
在我的系統上使用了大約 2MB。systemd-journal 是其中的重要組成部分,預設情況下可能會增長到“Avail”的 10%。(RuntimeMaxUse
選項),這不適合我的模型。我敢打賭這就是為什麼你在那裡有 50MB 的原因。允許 5% 的物理 RAM 用於日誌文件……就個人而言,這本身並不是一個大問題,但它並不漂亮,我稱之為錯誤/疏忽。如果將上限設置為與 2MB 標記相同的順序會更好。
目前它建議
/run
應該為每個系統手動設置大小,如果你想防止因一千個膨脹而死亡。即使是 2%(來自我的 Debian 範例)似乎也很冒昧。