Linux

tmpfs 和 devtmpfs 是否共享相同的記憶體區域?

  • March 23, 2016

我的系統盤使用情況是這樣的:

# 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 範例)似乎也很冒昧。

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