当前位置: 首页 > news >正文

[raspberry pi3] zram设置

[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了, 需要重启机器才能够使用, 不推荐使用。

posted on 2016-08-23 20:50 secularbird 阅读( ...) 评论( ...) 编辑 收藏

转载于:https://www.cnblogs.com/zelos/p/5800810.html

相关文章:

  • MyEclipse Site
  • 金蝶出现问题该怎么解决
  • Access 中数据库操作时提示from子句语法错误
  • rsync服务之配置文件rsyncd.conf详细说明
  • 【223】◀▶ IDL HDF 文件操作说明
  • 角色和权限Hibernate实体映射配置
  • C言语指向数组元素的指针
  • 常见问题解决
  • T-SQL 之 自定义函数
  • Comparable和Comparator排序接口
  • 驰骋工作流引擎表单设计控件-关系类控件-明细表(3)
  • 第一篇、C_高精度加法
  • 【域控管理】父域的搭建
  • dos.orm
  • MYSQL 的 IF 函数
  • Codepen 每日精选(2018-3-25)
  • HTML5新特性总结
  • JAVA多线程机制解析-volatilesynchronized
  • JS变量作用域
  • vue中实现单选
  • 阿里中间件开源组件:Sentinel 0.2.0正式发布
  • 个人博客开发系列:评论功能之GitHub账号OAuth授权
  • 关键词挖掘技术哪家强(一)基于node.js技术开发一个关键字查询工具
  • 软件开发学习的5大技巧,你知道吗?
  • 使用 5W1H 写出高可读的 Git Commit Message
  • LevelDB 入门 —— 全面了解 LevelDB 的功能特性
  • 阿里云ACE认证之理解CDN技术
  • 策略 : 一文教你成为人工智能(AI)领域专家
  • 关于Android全面屏虚拟导航栏的适配总结
  • ​520就是要宠粉,你的心头书我买单
  • ​比特币大跌的 2 个原因
  • ​一、什么是射频识别?二、射频识别系统组成及工作原理三、射频识别系统分类四、RFID与物联网​
  • #Lua:Lua调用C++生成的DLL库
  • (1)安装hadoop之虚拟机准备(配置IP与主机名)
  • (2)nginx 安装、启停
  • (done) ROC曲线 和 AUC值 分别是什么?
  • (LeetCode) T14. Longest Common Prefix
  • (博弈 sg入门)kiki's game -- hdu -- 2147
  • (分类)KNN算法- 参数调优
  • (附源码)spring boot儿童教育管理系统 毕业设计 281442
  • (附源码)springboot 基于HTML5的个人网页的网站设计与实现 毕业设计 031623
  • (附源码)springboot学生选课系统 毕业设计 612555
  • (每日持续更新)jdk api之StringBufferInputStream基础、应用、实战
  • (十)T检验-第一部分
  • (一)ClickHouse 中的 `MaterializedMySQL` 数据库引擎的使用方法、设置、特性和限制。
  • (转载)虚幻引擎3--【UnrealScript教程】章节一:20.location和rotation
  • ***监测系统的构建(chkrootkit )
  • ... 是什么 ?... 有什么用处?
  • .net core 实现redis分片_基于 Redis 的分布式任务调度框架 earth-frost
  • .NetCore Flurl.Http 升级到4.0后 https 无法建立SSL连接
  • @cacheable 是否缓存成功_让我们来学习学习SpringCache分布式缓存,为什么用?
  • @JSONField或@JsonProperty注解使用
  • @modelattribute注解用postman测试怎么传参_接口测试之问题挖掘
  • @Transactional 竟也能解决分布式事务?
  • [3D基础]理解计算机3D图形学中的坐标系变换