Zram/Zswap/Zcache杂记
目的是用闲置的cpu周期来做ram中的压缩和解压缩。
Zram主要是通过Swap框架,把zram压缩池模拟成swap分区。
Key:交换分区的swp_entry_t,mkswapon时会每个swap分区都分配一个index,page_io时会申请空闲的swp_entry_t,同时存储在page结构体private中,方便后续缺页异常找到。
Zswap主要是通过frontswap框架,把匿名页在进入swap分区之前hook了,转移到自定义的压缩池。和Zram最大的区别是一定要有额外的真实的物理swap分区,不然那匿名页回收的时候根本看不到有swap空闲。另一点是Zswap的Hook是在达到swap分区之前实现的,因此会比Zram早接管。
Key:和Zram一样。
Zcache主要是通过Cleancache框架,把clean的文件页回收到压缩池。
当前只支持ext4、f2fs、btrfs文件系统,毕竟一个文件页的唯一性是superblock+inode+offset决定的。
Key: 文件系统+文件+文件偏移
参考:
In-kernel memory compression 翻译:内核内实现的内存压缩 - JciX ~
Documentation\vm\frontswap.rst
Documentation\vm\cleancache.rst
Documentation\vm\zswap.rst
Zram/Zswap/Zcache杂记相关推荐
- linux zram cpu开销,在cgroup下进行zram性能测试
注意到zram有几个月时间了,据资料显示,最早使用内存压缩作为swap的,应该是苹果,从10.9开始支持,而Linux,有几种内存压缩的方法,分别是: zram,CentOS 6支持,但默认没有开启, ...
- kernel zram feature
what is zram? Zram wiki zram zram(也称为 zRAM,先前称为 compcache)是 Linux 内核的一项功能,可提供虚拟内存压缩.zram 通过在 RAM 内的压 ...
- zRAM内存压缩技术原理与应用
1. 技术背景 说到压缩这个词,我们并不陌生,应该都能想到是降低占用空间,使同样的空间可以存放更多的东西,类似于我们平时常用的文件压缩,内存压缩同样也是为了节省内存. 尽管当前android手机6GB ...
- Android6.0zram的作用,zram 简介
8种机械键盘轴体对比 本人程序员,要买一个写代码的键盘,请问红轴和茶轴怎么选? 来源: https://pengzhangdev.github.io/zram/ 简介¶ 在linux内核的mm子系统中 ...
- linux服务器有必要开zram吗,Linux上开启zRAM
8种机械键盘轴体对比 本人程序员,要买一个写代码的键盘,请问红轴和茶轴怎么选? 0x81 压缩内存 OS X 10.9添加了一项新特性,名字叫做压缩内存,在系统资源监视器里可以看到每个进程压缩后的内存 ...
- zRAM内存压缩技术分析及优化方向
目录 1. zRAM出现的背景 2. zRAM软件架构 3. zRAM实现分析 3.1 zRAM驱动模块 3.2 数据流模块 3.3 压缩算法模块 3.4 zRAM读写流程 3.5 zRAM writ ...
- [原创]商城系统下单库存管控系列杂记(二)(并发安全和性能部分延伸)
商城系统下单库存管控系列杂记(二)(并发安全和性能部分延伸) 前言 参与过几个中小型商城系统的开发,随着时间的增长,以及对系统的深入研究和测试,发现确实有很多值得推敲和商榷的地方(总有 ...
- Webpack系列-第一篇基础杂记
系列文章 Webpack系列-第一篇基础杂记 Webpack系列-第二篇插件机制杂记 Webpack系列-第三篇流程杂记 前言 公司的前端项目基本都是用Webpack来做工程化的,而Webpack虽然 ...
- 黯然微信小程序杂记(三):微信小程序实现倒计时功能 附讲解教学 附源码
黯然微信小程序杂记(三):微信小程序实现倒计时功能 附超详细注释 附源码 一.功能描述 二.界面展示 三.test.wxml代码 四.test.js代码(注释很详细 很易懂) CSDN私信我,有关微信 ...
最新文章
- 深度探秘.NET 5.0
- windows下python安装Numpy、Scipy、matplotlib模块
- 前端学习(3264):js中undefine中二相关属性
- 学习Spring Boot:(七)集成Mybatis
- 旧金山运输系统攻击者威胁将公布消费者和职工个人数据
- windows远程桌面无法粘贴复制的问题解决方法
- 【转】C#中base关键字的几种用法
- (个人)Linux基本指令收集
- mat opencv 修改roi_OpenCV开发笔记(七十三):红胖子8分钟带你使用opencv+dnn+yolov3识别物体...
- spring4.0.0的配置和使用
- 快速 二进制,八进制,十进制,十二进制转换 .源码,反码,补码,
- php 银行卡四要素验证,基于PHP的银行卡号实名认证(四要素)示例代码-六派数据...
- 危化品爆炸场景下的应急通信系统解决方案
- android删除本地图片,Android之删除图库照片
- 高分1(GF1)、高分2(GF2)卫星数据大气校正
- 高中关于人工智能方面的课题_人工智能的课题有什么研究方向
- R语言小白学习笔记12—概率分布
- 墨云saas系统总结
- 织梦调用banner图和栏目名称
- 基于web的IT技术论坛