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

求助:关于 Linux 下彻底关闭 zram 缓存的方法(zram.num_devices=0)

  •  
  •   lzwt806 · 2020-02-07 23:20:45 +08:00 · 4668 次点击
    这是一个创建于 1752 天前的主题,其中的信息可能已经有所发展或是发生改变。

    各位好,CDLinux 维护者,问题中年又来麻烦各位了

    有朋友会说这个应该让操作系统来管理,我经过大量的测试发现,如果是正常安装的操作系统这种想法是对的,但对于 LiveCD 这个在内存跑的移动系统而言,要随时回收有限的内存资源,内存浪费对 LiveCD 绝对是致命的(不要怀疑我这个结论)。

    亲测 Porteus v4.0 无忧 @wintoflash 前辈定制的版本不管什么时候打开一个软件,关闭之后内存都能回收到刚进入系统时候的值,一直不解这个发行版本是如何做到的?具体情况请看下图:

    http://wuyou.net/forum.php?mod=attachment&aid=NDEwNjg3fGY5ODg3MzAyfDE1ODEwODc4MjJ8MHw0MTg3MzU%3D&noupdate=yes

    不想看图的朋友,图片的内容如下:

    grub2 ( grub.cfg )我写的启动参数:

    menuentry 'ZRAM:关 LOOP:开 语言:简体中文' {

    linux /CDlinux/bzImage quiet zram.num_devices=0 CDL_DEV="Label=CDlinux" CDL_LANG=zh_CN.UTF-8 CDL_LOOP=yes

    initrd /CDlinux/initrd

    }

    而使用 I-Nex 软件看到 kernel 一栏的启动参数为:

    root=/dev/ram0 vga=normal zram.num_devices=4 zswap.enabled=1 zswap.max_pool_percent=20 zswap.compressor=lz4

    显然还是以 zram.num_devices=4 来启动系统的,那么我上面的 grub.cfg 参数就没有生效。

    请问:

    1,这种情况是怎么回事(为什么 grub 的参数没有传递给内核执行)?

    2,还是说我错了,应该把 zswap.enabled=1 改为 zswap.enabled=0 才正确?

    望知道的 /有经验的朋友指导一下,感谢!

    8 条回复    2020-02-09 13:05:39 +08:00
    Cooky
        1
    Cooky  
       2020-02-07 23:44:32 +08:00 via Android
    CDLinux 还活着?
    lzwt806
        2
    lzwt806  
    OP
       2020-02-08 00:06:04 +08:00
    @Cooky 活得很好,而且今非惜比,见: http://kxs-co.gicp.net/Linux/
    这是我维护的第 7 个年头了。
    omph
        3
    omph  
       2020-02-08 10:54:17 +08:00
    厉害,坚持了这么长时间啊
    看看这个是否有用
    [如何提升树莓派的可用运行内存空间?( ZRAM ) - 哔哩哔哩]( https://www.bilibili.com/read/cv727423/)
    [zram - Gentoo Wiki]( https://wiki.gentoo.org/wiki/Zram#Using_zram-init_service)
    Cooky
        4
    Cooky  
       2020-02-08 13:48:29 +08:00 via Android
    @lzwt806 牛逼,以前在上网本上试过 CDL,挺不错的,后来学了 Arch 就没怎么碰其他的,
    话说 CDL 是哪系的?还是 LFS 从头做的?
    楼上的 Gentoo wiki 应该能解决 zram
    lzwt806
        5
    lzwt806  
    OP
       2020-02-08 17:56:19 +08:00
    @omph 感谢,时间太紧,10 号要开工了,搞不完只能等明年春节继续更。

    @Cooky 早期 CDLinux 基于 slackware,到现在为止,70%是 LFS,28%用的 slackware/debian/资源,2%用的 centos/ArchLinux 资源,因为这 30%的包编译真的太麻烦太奇葩了,能用现成的就用现成的。

    另外还有 A/I/N 三家显卡驱动,内核没更,这些都很费时间。
    12101111
        6
    12101111  
       2020-02-08 18:05:35 +08:00
    看启动参数可以直接`cat /proc/cmdline/不需要 GUI 软件
    然后在 Linux x86 架构配置菜单 Processor type and features 下有 Built-in kernel command line 这个选项(CONFIG_CMDLINE_BOOL),打开后可以在 CONFIG_CMDLINE 中指定内置的启动参数,看起来这个内核应该内置了一些启动参数
    lzwt806
        7
    lzwt806  
    OP
       2020-02-08 18:29:29 +08:00
    @12101111 前辈说的“Processor type and features 下有 Built-in kernel command line 这个选项(CONFIG_CMDLINE_BOOL),打开后可以在 CONFIG_CMDLINE 中指定内置的启动参数“,是指在内核编译时的选项对吧?

    意思是我现在的内核没办法关闭?要么重新编译一次对吗?因为这个内核不是我编译的,如果手里没有配置模板,估计配置那些选项对于我一个菜鸟来说都要 1 天以上。
    tempdban
        8
    tempdban  
       2020-02-09 13:05:39 +08:00 via Android
    内核配置可以看看 /proc/config.gz
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5611 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 22ms · UTC 08:38 · PVG 16:38 · LAX 00:38 · JFK 03:38
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.