dfe*_*123 7 linux memory swap initramfs
我正在使用initramfs
通过 PXE 启动 Centos。已initramfs
使用的内存列在/proc/meminfo
或 via 中的“缓存”值中free
。
由于我需要计算性能数据,所以我需要知道它使用的内存是否initramfs
可回收(即可以换出到磁盘)。通常,/
实际使用的文件系统树中只有很小的一部分,因此initramfs
可以换出大部分。
读到这个,我得到了相互矛盾的信息。一些消息来源声称它的initramfs
行为类似于initrd
并且基于ramfs
,这意味着声称的内存不能被调出以进行交换。其他消息来源声称这initramfs
基本上tmpfs
意味着它可以被调出以进行交换。
哪个是真的?initramfs
文件系统中未使用的部分可以调出以交换空间吗?
编辑:答案更新/更正。
尽管有关此主题的内核文档说“Rootfs 是 ramfs(或 tmpfs,如果已启用)[...] 的一个特殊实例”,但它实际上仍然是一个 ramfs,正如代码中的简短介绍所示(rootfs
是中未提及mm/shmem.c
)。
一些补丁(例如参见这里和这里)被发送到Linux 内核邮件列表 (lkml)来改变这一点。但他们没有被接受。原因之一是,您通常没有在 initramfs 阶段或在嵌入式系统中启用交换。
initramfs 映像被提取到 rootfs。在用户空间(通常switch_root
调用 from /init
)切换到新的 root 之前,它会删除 rootfs 的内容,这样只剩下空 ramfs 的最小内存量。所以在这之后,你基本上可以忽略它的内存使用情况,它是否可以换出的问题几乎无关紧要。
归档时间: |
|
查看次数: |
1030 次 |
最近记录: |