V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Distributions
Ubuntu
Fedora
CentOS
中文资源站
网易开源镜像站
lzwt806
V2EX  ›  Linux

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

  •  
  •   lzwt806 · 2020-01-03 12:55:55 +08:00 · 2968 次点击
    这是一个创建于 1786 天前的主题,其中的信息可能已经有所发展或是发生改变。

    前两次关于 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 发行版,不为名利,只为奉献,无奈自己能力太有限,所以烦请知道的前辈们能否指点一下?感谢不尽!

    2 条回复    2020-01-03 21:27:41 +08:00
    2joe
        1
    2joe  
       2020-01-03 20:58:17 +08:00 via iPhone
    这个我也不懂,但我能给你加油
    maxwel1
        2
    maxwel1  
       2020-01-03 21:27:41 +08:00 via Android
    free 看到的空闲内存大小并不是应用程序实际可用的内存大小,cached 内存只是其中一部分。更多的内存信息可以在 cat /proc/meminfo 查看
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2648 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 22ms · UTC 02:50 · PVG 10:50 · LAX 18:50 · JFK 21:50
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.