Linux 平台下zRAM 和 swap 使用(内存交换)

当内存不足时,linux 系统可以向ROM 要空间给内存使用,zram 和 swap 可以完成该功能。

zram: 是把物理内存的一部分划分出来,把不是常用的内存数据压缩后放到zram里, 用到的时候把数据解压出来, 相当于牺牲了一些cpu效率,变相增大了内存。

磁盘 swap:是把磁盘的一部分作为内存, 对应用来说完全是透明的,相当与增大了内存, 但是缺点很明显, 当用到swap的时候,速度会变的很慢。

查看设备是否支持ZRAM

cd /dev/block/ 下, 看是否有zram0 或zram1。如果没有该文件则表明内核没有打开ZRAM选项或者是不支持ZRAM功能

M 平台开启下zRam 使用方法

  1. 1.kernel 下,打开zram
  +  CONFIG_ZSMALLOC=y
  +  CONFIG_ZRAM=y
  +  CONFIG_ZRAM_DEBUG=y

开启三个宏,打开M平台的zRam 功能,其它平台更多zram开关参考:
https://blog.csdn.net/qq_22182835/article/details/83117043

  1. android device下,fstab.xxx 设置属性和大小
+/dev/block/zram0 none swap defaults zramsize=104857600

在fstab.xxx 文件中,添加/dev/block/zram0 节点,并设置属性及节点文件大小,选项类似大体类似其它的system,boot分区

  1. android device下,init.xxxx.rc 脚本设置属性
         on fs
         + write /proc/sys/vm/page-cluster 0
         + swapon_all /fstab.xxx

设置page-cluster 属性,挂载分区。修改完成后,重新编译code ,顺兴boot.img 分区。验证办法:busybox free可以看到swap size

文件作为SWAP分区

1.创建要作为swap分区的文件:增加1GB大小的交换分区,则命令写法如下,其中的count等于想要的块的数量(bs*count=文件大小)。
# dd if=/dev/zero of=/root/swapfile bs=1M count=1024

2.格式化为交换分区文件:
# mkswap /root/swapfile #建立swap的文件系统

3.启用交换分区文件:
# swapon /root/swapfile #启用swap文件

4.使系统开机时自启用,在文件/etc/fstab中添加一行:
/root/swapfile swap swap defaults 0 0

快捷脚本

#!/system/bin/sh

#SWAP_FILE=“/data/swap1”

if [ ! -f “/data/swap1” ]; then
dd if=/dev/zero of=/data/swap1 bs=390250 count=256
fi

busybox mkswap /data/swap1
busybox swapon -p 0 /data/swap1
echo 0 > /proc/sys/vm/swappiness
cat /proc/sys/vm/swappiness
busybox free -m

/proc/sys/vm/swappiness 里的值代表使用swap的优先级, 0 就是不用, 100代表最大程度的使用

新建磁盘分区作为SWAP分区

步骤如下:

     a 使用fdisk来创建交换分区(假设 /dev/sdb2 是创建的交换分区)
     b 使用 mkswap 命令来设置交换分区:
   # mkswap /dev/sdb2
     c 启用交换分区:
   # swapon /dev/sdb2
     d 写入/etc/fstab,以便在引导时启用:
      /dev/sdb2swap swap defaults 0 0

查看SWAP空间大小

# free-m
默认单位为k, -m 单位为M
                    total      used      free    shared   buffers    cached
  Mem:          377       180       197         0        19       110
  -/+buffers/cache:      50        327
  Swap:         572         0         572

查看SWAP空间信息

包括 文件 和 分区 的详细信息
  # swapon -s
  等价于
  # cat /proc/swaps

引用链接:
https://blog.csdn.net/qq_22182835/article/details/83117043
https://www.cnblogs.com/wuxie1989/p/5888595.html
https://blog.csdn.net/wj78080458/article/details/83532798
https://blog.csdn.net/xinyuanqianxun1987/article/details/52065786

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值