使用zram减少内存占用

栏目: 服务器 · Linux · 发布时间: 7年前

内容简介:使用zram减少内存占用

办公电脑刚升级成了window10不久,发觉windows8以后,微软引入了一套 “内存压缩” 技术,旨在大幅度减少系统对内存的使用。随手查了一下其实 Linux 在3.14版本(2014年3月)中已经引入了类似的技术,那就是zram。

当前的操作系统中,由于牵扯到多进程操作,在操作系统层面上会给每个独立进程分配各自的虚拟内存,而这个zram就是将不活动的内存通过压缩的方式避免内存不足导致的频繁分页。

第一直觉就是这个技术会消耗较多的CPU。而奇怪的是除了部分android系统之外,大部分的Linux发行版默认并不启用zram技术。而android系统大部分都更加纠结CPU资源。显然这种技术在移动设备上启用也是不得已的选择。窃以为,除了桌面环境之外,对于像 redis 这样的内存数据库来说,内存压缩技术才是比较好的应用场景。它的特性:CPU低依赖,内存容量高依赖。

对于ubuntu来说,启用zram非常容易

#sudo apt-get install zram-config
#sudo systemctl start zram-config.service

查看zram使用状态的方式,还是通过/proc/swpas文件或者通过swapon命令

~# lsmod | grep zram
zram 28672 16 # kernel加载了zram模块
lz4_compress 16384 1 zram #zram采用lz4格式压缩

~# cat /proc/swaps
Filename Type Size Used Priority
/dev/dm-1 partition 50257916 242148 -1
/dev/zram0 partition 1543572 0 5
/dev/zram1 partition 1543572 0 5
/dev/zram2 partition 1543572 0 5
/dev/zram3 partition 1543572 0 5
/dev/zram4 partition 1543572 0 5
/dev/zram5 partition 1543572 0 5
/dev/zram6 partition 1543572 0 5
/dev/zram7 partition 1543572 0 5
/dev/zram8 partition 1543572 0 5
/dev/zram9 partition 1543572 0 5
/dev/zram10 partition 1543572 0 5
/dev/zram11 partition 1543572 0 5
/dev/zram12 partition 1543572 0 5
/dev/zram13 partition 1543572 0 5
/dev/zram14 partition 1543572 0 5
/dev/zram15 partition 1543572 0 5

~# swapon -s 
Filename Type Size Used Priority
/dev/dm-1 partition 50257916 242148 -1
/dev/zram0 partition 1543572 0 5
/dev/zram1 partition 1543572 0 5
/dev/zram2 partition 1543572 0 5
/dev/zram3 partition 1543572 0 5
/dev/zram4 partition 1543572 0 5
/dev/zram5 partition 1543572 0 5
/dev/zram6 partition 1543572 0 5
/dev/zram7 partition 1543572 0 5
/dev/zram8 partition 1543572 0 5
/dev/zram9 partition 1543572 0 5
/dev/zram10 partition 1543572 0 5
/dev/zram11 partition 1543572 0 5
/dev/zram12 partition 1543572 0 5
/dev/zram13 partition 1543572 0 5
/dev/zram14 partition 1543572 0 5
/dev/zram15 partition 1543572 0 5

本质上说,其实zram就是利用了内存开辟了若干个虚拟的块设备,并作为swap挂装。并且通过优先级的设定保证swap数据优先写入这些虚拟设备中。

对于zram的设定,由于系统默认已经将zram作为了一种块设备,你可以直接通过/sys/block目录下的zram*目录管理每个zram分区。作为模块的管理,则分散在/sys/module/zswap,/sys/module/zram两个目录下。比如你想要改变zram的压缩算法,则可以通过/sys/module/zswap/parameters/compressor文件来改变。


以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

Machine Learning in Action

Machine Learning in Action

Peter Harrington / Manning Publications / 2012-4-19 / GBP 29.99

It's been said that data is the new "dirt"—the raw material from which and on which you build the structures of the modern world. And like dirt, data can seem like a limitless, undifferentiated mass. ......一起来看看 《Machine Learning in Action》 这本书的介绍吧!

SHA 加密
SHA 加密

SHA 加密工具

html转js在线工具
html转js在线工具

html转js在线工具