哪些内存页面分配给 Linux RAM 磁盘中的文件

Posted

技术标签:

【中文标题】哪些内存页面分配给 Linux RAM 磁盘中的文件【英文标题】:Which memory pages are assiged to files in Linux RAM disk 【发布时间】:2014-07-21 17:34:12 【问题描述】:

我正在尝试找到已分配回文件的确切机器内存页面,这些文件存储在 Linux RAM 磁盘中。例如,对于一个进程,有 /proc/pid/pagemap 可以准确地告诉您进程正在使用哪些机器页面。我正在为 RAM 磁盘寻找类似的东西。你知道内核模块或数据结构可能有分配给 RAM 磁盘的页面列表吗?

例如,如果我创建一个 1MB 大小的 RAM 磁盘(假设 4KB 页),这意味着应该有 256 个机器页分配给该 RAM 磁盘 (2^22/2^14=256)。

RAM 磁盘建立在 Linux 的页面缓存之上,因此似乎是一个不错的起点,但我不确定如何关联哪些页面缓存条目对应于 RAM 磁盘。

【问题讨论】:

你为什么在乎?内核可能会将页面从某个 RAM 移动到另一个 RAM! 【参考方案1】:

我认为它不是 /proc/pid/pagemap 中显示给您的确切内存位置。 这些是虚拟内存映射(帧)。

pagemap 是内核中的一组新接口(从 2.6.25 开始),它允许 用户空间程序通过以下方式检查页表和相关信息 读取 /proc 中的文件。

更多信息关注

https://www.kernel.org/doc/Documentation/vm/pagemap.txt

【讨论】:

以上是关于哪些内存页面分配给 Linux RAM 磁盘中的文件的主要内容,如果未能解决你的问题,请参考以下文章

μC/OS的文件系统

RAM是如何分配的? [关闭]

Hadoop YARN 集群/Spark 和 RAM 磁盘

C代码测量Linux中的磁盘写入时间并处理RAM缓冲

linux内存

Linux存储管理