2017-06-22 102 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內存回收機制,也許這一個回答我的問題,根據所分配