【发布时间】:2014-12-17 12:28:24
【问题描述】:
我正在开发一个具有 512MB RAM 和足够交换内存来支持应用程序的嵌入式系统。在内核中,我将内核 cmd 参数的 RAM 大小限制为 130MB。并使用swapoff -a 禁用交换。我还禁用了内核过度使用,以便应用程序可以单独在物理内存中运行。我验证了来自/proc/cmdline 和/proc/meminfo 的更改。现在,当我运行应用程序并检查最高值时,我的应用程序的 VSZ 为 177m,超过了实际内存!!这怎么可能?这段记忆是从哪里来的?
【问题讨论】:
-
内存映射文件?相同的内存在虚拟地址空间中映射了两次?检查进程内存映射。
-
linuxatemyram.com 和
/proc/$PID/maps
标签: c linux memory memory-management linux-kernel