我刚刚在安装了 debian 6.01a 的机器上运行了一些可能存在内存泄漏问题的应用程序。它消耗了总共 8GB RAM 中的大约 5GB,并且在退出时没有释放 RAM。所以我重新启动了机器,以恢复内存。但是,我发现并没有。当机器再次启动时,top 命令和 free 命令都显示仍有 5GB RAM 被占用。这对我来说真的难以理解,那么有人可以解释为什么会发生这种情况吗?
更新:最后我发现这不是系统内存管理的问题。大量内存被占用的原因是应用程序向 redis 服务器写入了大量数据(大约 5GB),这就是为什么系统启动时大约有 5GB 的内存被占用。抱歉,这个问题误导了你。
答案1
请查看http://www.linuxatemyram.com/在确定你的系统存在内存泄漏之前。
答案2
您可能没有正确测量内存使用情况(重启前和重启后均如此)。您可以使用以下方法找出内存消耗的位置:
$ cat /proc/meminfo
输出格式描述在内核文档中。这将告诉您内存使用情况是在用户空间还是在内核中。
供将来参考,快速找出哪些用户空间进程正在使用内存的方法是运行top
,然后键入M
(大写 M)按 RES 排序。