性能优化——ZRAM

ZRAM是一种内存压缩技术,用于在Linux内核中创建一个位于内存中的交换分区,以提高系统性能。本文介绍了ZRAM的工作原理、配置方法,包括开机启用、压缩算法选择和压缩比例设置。同时,还对比了传统的swap分区,探讨了ZRAM如何通过内存压缩来提升系统效率。此外,还讨论了如何关闭ZRAM功能以及ZRAM与swap分区的关联和区别。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

[FAQ21507] zram 原理及其配置

[DESCRIPTION]

swap分区其实就是 zram 部分的内容,两个可以认为是相同的东西

其中swappiness 管理的是什么情况下放入到swap 分区,

而 zram 管理了这个分区,包括分区的大小、压缩算法

[SOLUTION]

1. 是否开机zram 

方法有两个:

方法一 :

CONFIG_ZSMALLOC=y
CONFIG_ZRAM=y
CONFIG_ZRAM_LZ4_COMPRESS=y

方法二: 

/dev/block/zram0 none swap defaults zramsize=1073741824  , 将fstab.enableswap 中 zramsize = 0

 

2. zram 的压缩算法

LZ4 compression has better decompress rates than the default LZO compression algorithm (3x). Kernel config
should enable the LZ4 module and zRAM should be configured to use LZ4 in the init.rc script see Enable “Swap
to zRAM” section.


Example <device>_defconfig
CONFIG_ZRAM_LZ4_COMPRESS=y

init.rc
on init
# Set zRAM compression to lz4
write /sys/block/zram0/comp_algorithm lz4

 

3. zram 的压缩比例

zram 压缩比例,可以任意的设置。

压缩比例设置的高,内存也就减少那部分,但是存储的内容会变大;

如果设置的很高的话,不停的压缩解压,对系统的performance 有损耗;

 

但对于大内存来说,可以考虑删除zram 或 减少 zram

 

[FAQ21498] swap 压缩原理及其配置

[DESCRIPTION]

 当前手机中使用的swap 与 传统Linux中将磁盘的部分区域划分swap 有着很大的区别。当前swap分区方法是从内存中划分一块区域,首先将数据进行压缩,再放置到里面。这样可以让更多的数据放入到内存,又能避免从外存调整数据的延迟。

这种方式的原理是认为CPU 压缩,解压数据的性能成本要小于直接从磁盘中获得。

下面详细介绍其中原理,及其配置参数说明

[SOLUTION]

 当配置有GMO 时,在lowmemroykiller 进行了重新的修改 

 

 对于一个数据的处理分为两种,

1)每次使用都从磁盘中读到内存,不去使用就把它删除

2)第一次使用从磁盘中读取数据,之后将其压缩放到swap 分区中,当再次使用时,接着解压读取

因此 swappiness 就是一个指标判断 什么情况将文件丢弃,什么时候将文件进行压缩

0~100 更倾向将数据丢弃

100~200 更倾向将数据进行压缩

 

[FAQ09456] zram(内存压缩)介绍

下面是对Zram(内存压缩)一个简单介绍:

1. zram 又称内存压缩,Linux kernel会把不常用的内存进行压缩,以换出更多的内存供系统使用

    -- 平时空闲时候会做压缩,以备不时之需

    --  kernel 申请不到内存,会触发压缩机制

2. 只有user process的内存可被压缩

3. 压缩是有成本的,会影响performance

    -- 通常,launch app的时候会受影响

    -- 代码执行中,突然要大量内存的时候也会受到影响

4. 在LCA/non-LCA的项目都有可能Enable,目前为止只有72&82&92项目上面支持,其它暂不支持

若有更细节问题,可提e-service与MTK讨论


FAQ0

### zRAM在Linux和Android中的Swap机制实现内存压缩及其作用 #### zRAM的核心概念 zRAM是一种基于内存压缩的技术,旨在通过减少数据占用的空间来提高系统的可用内存容量。它的工作原理是在内存中创建一个虚拟块设备,并使用CPU的计算能力对写入此设备的数据进行实时压缩[^1]。 #### zRAM与Swap的关系 传统的swap机制会将部分内存页面移动到磁盘上存储,以便释放更多的物理内存供其他进程使用。然而,这种操作通常伴随着较高的延迟,因为硬盘的速度远低于内存速度。相比之下,zRAM提供了一种更高效的解决方案——通过压缩技术直接在内存内部处理这些页面,从而避免了访问较慢的磁盘资源[^2]。 #### 在Linux平台上的应用 对于运行Linux的操作系统而言,启用zRAM意味着可以在不需要额外硬件支持的前提下显著提升性能表现。具体来说,当系统检测到内存压力增大时,它可以自动选择某些不活跃或者低优先级的数据页转移到由zRAM管理的部分;由于经过高效算法处理后的版本所需空间变少了,因此整体来看相当于增加了可使用的逻辑内存总量。 #### Android环境下的实施情况 鉴于智能手机和平板电脑等移动终端往往配备有限量级随机存取储存器(RAM),所以安卓操作系统广泛采用了这项创新成果作为优化用户体验的重要手段之一。在这里面,zRAM不仅帮助缓解因应用程序频繁切换而导致临时文件堆积所造成的负担,同时也改善了电池续航时间指标—毕竟相比起唤醒休眠状态下的HDD/SSD驱动器来进行常规交换过程消耗的能量要少得多. ```bash # 创建并配置zram设备示例脚本 (适用于大多数GNU/Linux发行版) modprobe zram num_devices=1 echo $(( $(getconf PAGE_SIZE) * 8 )) > /sys/block/zram0/disksize mkswap /dev/zram0 && swapon --priority=100 /dev/zram0 ``` 上述代码片段展示了如何手动设置单个zram装置用于充当高优先级交换分区的方法。其中`num_devices`参数定义了多少独立单元可供分配;而后面的命令序列则负责指定大小、初始化格式化动作以及激活服务链路等方面的内容。 #### 技术优势总结 - **节省成本**:无需购买更大规格的实际组件即可获得类似效果. - **增强效率**:借助现代处理器强大的算力快速完成转换流程而不影响正常作业进度. - **降低功耗**:减少了不必要的外部读写活动频率进而节约电力开支.
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值