2017-06-22 127 views
0

我在我的linux(CENT-OS-5)上通过C实现了一项服务。我发现服务Linux内存使用率高时Linux进程释放内存?

每天消耗越来越多的记忆。 (每天约200-500KB)

我知道一旦通过的malloc分配的内存不容易回到

系统。所以也许这就是为什么我的程序不断增加内存大小。

当我试图写一个简单的代码malloc从系统的所有内存。

发生在我的Linux发生了什么事。我的服务的RSS-Memory从6xxxKB下降到3xxx KB。

所以我的问题是:Linux是否在紧急情况下回收内存?如果是,

它是如何工作的?我可以配置它吗?谢谢。

+1

内存'malloc'是*非常*易“返回系统”,只是传递一个指针记忆到“免费”功能。一旦你完成了它,你会*自由记忆吗? –

+0

您好,欢迎来到Stack Overflow。 [请阅读本文关于在StackOverflow中要问什么](http://www.wikihow.com/Ask-a-Question-on-Stack-Overflow)。你的问题是一个有效的问题,但在[其他论坛,超级用户](https://superuser.com/tour)。欢迎来到这个社区,希望能看到更多的帖子。 –

+0

是的,我几乎释放了我分配的内容,但拨打'免费'不能减少'ps aux'显示的RSS值。 –

回答

0

我发现有一个叫PFRA内存回收机制,也许这一个回答我的问题,根据所分配