技术解析

求助:关于 Linux 下彻底关闭 zram 缓存的方法(zram.num_devices=0)
0
2021-06-18 20:29:45
idczone

各位好,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 才正确?

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


CDLinux 还活着?

活得很好,而且今非惜比,见: http://kxs-co.gicp.net/Linux/
这是我维护的第 7 个年头了。

厉害,坚持了这么长时间啊
看看这个是否有用
[如何提升树莓派的可用运行内存空间?( ZRAM ) - 哔哩哔哩]( https://www.bilibili.com/read/cv727423/)
[zram - Gentoo Wiki]( https://wiki.gentoo.org/wiki/Zram#Using_zram-init_service)

牛逼,以前在上网本上试过 CDL,挺不错的,后来学了 Arch 就没怎么碰其他的,
话说 CDL 是哪系的?还是 LFS 从头做的?
楼上的 Gentoo wiki 应该能解决 zram

感谢,时间太紧,10 号要开工了,搞不完只能等明年春节继续更。
早期 CDLinux 基于 slackware,到现在为止,70%是 LFS,28%用的 slackware/debian/资源,2%用的 centos/ArchLinux 资源,因为这 30%的包编译真的太麻烦太奇葩了,能用现成的就用现成的。
另外还有 A/I/N 三家显卡驱动,内核没更,这些都很费时间。

看启动参数可以直接`cat /proc/cmdline/不需要 GUI 软件
然后在 Linux x86 架构配置菜单 Processor type and features 下有 Built-in kernel command line 这个选项(CONFIG_CMDLINE_BOOL),打开后可以在 CONFIG_CMDLINE 中指定内置的启动参数,看起来这个内核应该内置了一些启动参数

前辈说的“Processor type and features 下有 Built-in kernel command line 这个选项(CONFIG_CMDLINE_BOOL),打开后可以在 CONFIG_CMDLINE 中指定内置的启动参数“,是指在内核编译时的选项对吧?
意思是我现在的内核没办法关闭?要么重新编译一次对吗?因为这个内核不是我编译的,如果手里没有配置模板,估计配置那些选项对于我一个菜鸟来说都要 1 天以上。

内核配置可以看看 /proc/config.gz

数据地带为您的网站提供全球顶级IDC资源
在线咨询
专属客服