zoukankan      html  css  js  c++  java
  • [raspberry pi3] zram设置

    linux 3.15之后添加了个和mac一样的功能,内存压缩zram, 之前还有个zswap, zram通常是以模块的方式被放在系统里面的,以便在可以根据需求的不同,定制化加载.

    raspberry pi3的1g内存容量还是太小了,设定了zram可以挤点内存出来用, android4.4的数据貌似是40%.

    贴代码(从desktop的ubuntu上抄来的)

    设定代码:

    #!/bin/sh
    
    # load dependency modules
    NRDEVICES=$(grep -c ^processor /proc/cpuinfo | sed 's/^0$/1/')
    if modinfo zram | grep -q ' zram_num_devices:' 2>/dev/null; then
      MODPROBE_ARGS="zram_num_devices=${NRDEVICES}"
    elif modinfo zram | grep -q ' num_devices:' 2>/dev/null; then
      MODPROBE_ARGS="num_devices=${NRDEVICES}"
    else
      exit 1
    fi
    modprobe zram $MODPROBE_ARGS
    
    # Calculate memory to use for zram (1/2 of ram)
    totalmem=`LC_ALL=C free | grep -e "^Mem:" | sed -e 's/^Mem: *//' -e 's/  *.*//'`
    mem=$(((totalmem / 2 / ${NRDEVICES}) * 1024))
    
    # initialize the devices
    for i in $(seq ${NRDEVICES}); do
      DEVNUMBER=$((i - 1))
      echo $mem > /sys/block/zram${DEVNUMBER}/disksize
      mkswap /dev/zram${DEVNUMBER}
      swapon -p 5 /dev/zram${DEVNUMBER}
    done

    关闭代码:

    #!/bin/sh
    
    if DEVICES=$(grep zram /proc/swaps | awk '{print $1}'); then
      for i in $DEVICES; do
        swapoff $i
      done
    fi
    rmmod zram

    想要开机就设定的话,只要把设定的代码添加到/etc/rc.local,开机自动设定

    启动与否可以使用下面的命令查看:

    swapon -s

    输出结果如下

    Filename                Type        Size    Used    Priority
    /dev/zram0                                 partition    118464    0    5
    /dev/zram1                                 partition    118464    0    5
    /dev/zram2                                 partition    118464    0    5
    /dev/zram3                                 partition    118464    0    5

    可以看到分了4块和processor的数量是相同, 总数是总可用的物理内存的一半,至于为啥和processor数一样会比较好,原因未知

    # 2016/09/03 

    经过这么多天的测试和使用,结论是raspberry 目前的版本还是不要使用比较好,貌似有bug,某些情况下会导致当你还有空闲内存的时候,内存分配不出来,现象如很多程序已启动就segment fault了, 需要重启机器才能够使用, 不推荐使用。

  • 相关阅读:
    多线程上传和下载大文件(当文件服务器对上传文件大小有限制)
    http和https的区别?
    将数据导出到 excel ,然后下载下来
    注解@Transactional(rollbackFor = Exception.class) 的用法
    浅谈 MongoDB
    浅谈负载均衡
    join,left join,inner join,full join的区别?
    Bootstrap如何适配移动浏览器
    常用正则表达式
    js获取节点
  • 原文地址:https://www.cnblogs.com/zelos/p/5800810.html
Copyright © 2011-2022 走看看