Android6.0zram的作用,zram 简介

66b52468c121889b900d4956032f1009.png

8种机械键盘轴体对比

本人程序员,要买一个写代码的键盘,请问红轴和茶轴怎么选?

来源: https://pengzhangdev.github.io/zram/

简介¶

在linux内核的mm子系统中, 包含三个支持内存压缩的组件, 分别是zram, zcache 和 zswap.

zswap: 前提条件是, 系统中存在swap设备, 内核版本>3.5, 因为依赖了frontswap的接口, 用于管理swap page.

zswap是一个轻量化的后端架构, 将进程各种交换出的页面进行压缩, 并存储在一个基于RAM的内缓冲池中. 缓冲池不预分配, 有最大值, 且当缓冲池满了, LRU的内存页会被写入swap设备. 依赖swap分区, 不适用hdtv.

zcache: 与zswap类似, 依赖frontswap接口和cleacache接口, 内核版本>3.5. 与zswap一样, 将进程交换出的页面和文件系统的缓冲进行压缩并存储在RAM的内存缓冲池中, 在缓冲池满后, 将页面存入swap分区或者 RAMster (一种基于网络的内存池共享技术, 可以共享网络中其余硬件的内存). zswap可以理解为是zcache的子集. 不适用hdtv.

zram: 内存中的swap设备, 内核>3.14, 可以理解为zcache的RAM缓冲池. 优先级最高, 不建议与其他swap一起使用.不依赖真实的swap设备(Nand或者网络), 倾向于在低内存的嵌入式设备中使用.

综上, zram更适合hdtv这个项目

zram¶

zram是将系统中的内存的一部分内存隔离成zram设备(swap设备),对于小内存的设备, 在使用上会感内存被扩大了.

linux内核中为zram提供了各种压缩算法, 默认的是LZO, 该算法在大部分情况下都能很好地平衡压缩率和速度. LZO主要是在速度上优化.在一些比较正式的文档上, LZO的压缩率平均为50%. 下面是针对内核源码(50.6M)压缩的一个图表, 网上提供的.

lzop: 1.62 seconds to compress, 18.0 MB, ratio=.355

gzip: 19.13 seconds, 10.8 MB, ratio=.213

bzip2: 60.81 seconds, 8.46 MB, ratio=.176

xz: 311.65 seconds, 7.33 MB, ratio=.145

压缩率计算:

相关数据/sys/block/zram0/{mem_used_total,orig_data_size,compr_data_size}

compression radio = orig_data_size / compr_data_size

real compr. ratio = orig_data_size / mem_used_total

优点¶内存扩大, 平均压缩比为2.0

由于在实现上, 如果某个PAGE的压缩率大于PAGE_SIZE * 4 / 3 (kernel 3.10), 则不进行压缩, 在读取时, 也就省下解压的消耗. 从而提高速度,降低CPU占用,但是会降低压缩率.

缺点¶CPU占用

功耗增加

由于占用一部分内存作为zram设备, 则如果zram压缩速度不够快, 反而更容易引发OOM.(github上的一个情况, 无数据信息, 在ZX2000上未出现该情况)

调整方法¶

CPU占用查看kswapd(kswap)

CPU占用调整:/sys/block/zram0/max_comp_streams 设置压缩流个数. 默认为每个CPU分配1个.

/sys/block/zram0/comp_algorithm 切换压缩算法, 建议使用默认的LZO, 速度快

测试¶

以下数据是 在ZX2000上, UI切换和启动新应用换, 抓取的数据.

压缩率相关的三个值分别为

# busybox free

total used free shared buffers cached

Mem: 427400 365136 62264 408 348 72148

-/+ buffers/cache: 292640 134760

Swap: 204796 103784 101012

orig_data_size: 90275840

mem_used_total: 25862144

compr_data_size: 21846958

zero_pages: 1903

压缩率为:

compression radio(orig_data_size / compr_data_size) = 90275840 /

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值