【发布时间】:2010-11-17 08:52:05
【问题描述】:
想知道通过 mmap() 映射文件的最大内存量与 linux 机器中的 RAM 大小之间是否存在关系。我尝试对一些文件进行内存映射,发现当“映射”使用接近“MemTotal”(通过 cat /proc/meminfo 查看)时,我无法再映射任何文件。
来自 64 位 linux 机器上的 /proc/meminfo :
内存总量:32909628 kB
MemFree:221744 kB
缓冲区:1800 kB
映射:31642928 kB
提交限制:38012616 kB
Committed_AS:42641120 kB
VmallocTotal:536870911 kB
Vmalloc已使用:299920 kB
VmallocChunk:536568999 kB
那么,我是否正确假设“映射”使用量永远不会超过“MemTotal”。我的困惑是我认为当我们映射文件时内存总是虚拟的。
谢谢!
【问题讨论】:
标签: linux unix memory-management