嵌入式linux增加ZRAM支持

Linux内核ZRAM概念

在使用嵌入式Linux的时候,经常遇到以下尴尬:为了节约成本,DDR通常比较小,比如128M、256M等等,然而现在的应用程序越做越大,偶尔会遇到OOM,导致进程被杀。如果是在PC版的Linux上,经常可以通过交换分区的方式来解决内存不够的问题,但嵌入式Linux时常使用Nand Flash甚至SPI Flash,根本无法作交换分区,所以嵌入式Linux时常会关闭交换分区功能。
那有没有好的解决办法呢?当然有,那就是ZRAM技术了。简单的来说,就是拿一部分内存当做交换分区使用,暂时不用的内存页面压缩后保存在 zram交换分区面。因为是压缩后保存的,所以可以省出一部分内存。
是不是很像iOS或者Android里,为了节约RAM空间,做的内存压缩技术?可以说,这就是利用CPU性能换空间的技术。

打开ZRAM选项

在3.10内核上, zram 在 Device Drivers — Staging Drivers 里面:

  │ │                 [*]   Memory allocator for compressed pages                                             │ │  
  │ │                 <M>     Compressed RAM block device support 

选中之后, 重新编译内核.会得到一个 zram.ko 文件.把它放到目标系统的 lib/modules/3.10.20/下面,启动时加载该驱动,并且加载lzo_compress和lzo_decompress模块,再在启动脚本中:

mkswap /dev/zram0 &&
swapon -p 10 /dev/zram0 &&
sysctl -w vm.swappiness=10

此后便可以看到:

root@:/#free
             total         used         free       shared      buffers
Mem:       1033864        15792      1018072            0          248
-/+ buffers:              15544      1018320
Swap:       262140            0       262140
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值