Nan*_*iao 5 linux filesystems devices linux-kernel tmpfs
我的系统盘使用情况是这样的:
# 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
Run Code Online (Sandbox Code Playgroud)
我有2关于devtmpfs和的问题tmpfs:
(1)
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
Run Code Online (Sandbox Code Playgroud)
以上所有空间都是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 Code Online (Sandbox Code Playgroud)
每个用户是否都有自己的专用内存空间,而不是/run/user分区中的共享空间?
对于所有 tmpfs 安装,“Avail”是一个人为的限制。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 示例)似乎也很冒昧。