请教 Linux 前辈们,关于 Linux 内存回收的问题

2020-01-03 12:55:55 +08:00
 lzwt806

前两次关于 Linux 的问题都得很了很满意的回复,感常感谢!

这次再来请教一个关于 Linux 内存回收的问题,因为这些问题使用搜索引擎也不好找到对应的答案,所以还有烦请有知道的 Linux 前辈们不吝赐教。

先说已知条件:

Porteus 这个 Linux 发行版,我发现:启动进入 LXDE 桌面,使用 free -m 得到 200M 的内存占用,打开 Firefox 浏览器,浏览几个小时,free -m 得到 960M,再打开其它软件,free -m 得到 1.2G 。好,现在关了 firefox 和打开的软件,再 free -m 得到 201M,内存回收很彻底。

再试 Lubuntu,启动进入系统 free -m 得到 210M,按理说一个团队打造的,内存收回也应该很好,但现实不然,就算是关了 Firefox 和其它打开的软件,再 # echo 3 > /proc/sys/vm/drop_caches 清空缓存,free -m 得到的值也不可能是 210M,可能是 400M 或更大。

包括我自己维护的 CDLinux 也是这样,思前想后就是想不明白,Porteus 是如何做到的?

在无忧论坛咨询过 wintoflash 前辈,他的回信是可能 Firefox 或 LXDE/XFCE 存在内存泄漏,但我测试了无数次,就算用 Porteus 上同一个软件,一样做不到像 Porteus 完全回收,用上了 echo 3 > /proc/sys/vm/drop_caches 也不行。

很多前辈可能会说:让 Linux 自动管理内存、让系统充分利用内存不好吗?

我的回答是:在大容量内存及高性能机器上完全可以,但对于我想实现的移动操作系统( LiveCD )来说这种想法是致命的,移动操作系统会面对各种各样高低性能,大小内存的机器,能在十分有限的内存的机器上稳定的运行,对于内存回收决对是个大关键。

现实之中大量测试发现:Porteus 在 2G RAM 的机器上运行长时间不会溃,但 CDLinux 会因为内存耗尽而系统崩溃。

我一心想打造一个简单,稳定,实用的 Linux 发行版,不为名利,只为奉献,无奈自己能力太有限,所以烦请知道的前辈们能否指点一下?感谢不尽!

2974 次点击
所在节点    Linux
2 条回复
2joe
2020-01-03 20:58:17 +08:00
这个我也不懂,但我能给你加油
maxwel1
2020-01-03 21:27:41 +08:00
free 看到的空闲内存大小并不是应用程序实际可用的内存大小,cached 内存只是其中一部分。更多的内存信息可以在 cat /proc/meminfo 查看

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/634737

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX