分享

不加内存条,也不是加虚拟内存,让你电脑可用内存提高一倍!

 uqt123 2020-04-07

电脑内存不够了,加内存条!除了加内存条呢,很多人想到的就是设置虚拟内存,比如windows在我的电脑中,可以开辟一块硬盘空间做虚拟内存,或者Linux中的SWAP,也是同样的原理。但是无论是虚拟内存,还是SWAP,使用的都是硬盘空间,就算是SSD,速度又怎么跟内存比呢!

还有一个东西,可以提高你的电脑内存,它就是ZRAM。

Zram

Zram是 Linux 内核中采用时间换空间的一种技术,2009年的时候就进了Linux 3.11内核。它通过压缩内存(Zram)来作为交换分区,通过压缩比来获取更多可利用的内存空间。该技术目前在各类内存受限的嵌入式系统中,尤其是 Android 手机、电视等设备上广泛采用。

虽然Zram是Linux最早实现的,但目前的主流操作系统,Windows、Linux、Mac OS 均支持Zram技术

这玩意可以做到最大扩大两倍可用内存大小,这样能做的事情就很多了,2G 变 6G 、4G 变 12G,即使为了性能有所克制,翻倍也是轻轻松松。

相应的,可以永远跟 swap 说拜拜了,这对尤其是云上读写很差的小机器还是很有意义的。

Zram原理

zram即是内存交换区的一种实现,与传统交换区实现的不同之处在于,传统交换区是将内存中的页交换到磁盘中暂时保存起来,发生缺页的时候,从磁盘中读取出来换入。而zram则是将内存页进行压缩,仍然存放在内存中,发生缺页的时候,进行解压缩后换入。根据经验,LZO压缩算法一般可以将内存页中的数据压缩至1/3,相当于原本三个页的数据现在一个页就能存下了,赚到了两个页,从而使可用内存感觉起来变多了。

所以需要强调,Zram不是传统的虚拟内存。传统的SWAP,即使将Swap分区迁移到SSD上面,但在发生Swap时,卡总是无法避免的,万恶之源都在于IO的瓶颈。如果减少IO交换的次数,那么情况是不是就有些好转呢?

Zram不是让你的电脑总内存增加,而是让你电脑的可用内存增加。

Zram使用了压缩算法来处理你的内存,理论上压缩算法会消耗一定CPU,但是这个LZO压缩算法对CPU的消耗很小。

开启Zram

启用很简单,Ubuntu直接sudo apt-get install zram-config就行。zram-config会自动搞定一切。

其他系统的话,如下操作:

# 加载zram模块,并创建4个设备modprobe zram num_devices=4 #查看可用流设备cat /sys/block/zram0/max_comp_streams# 查看和选择可用压缩算法cat /sys/block/zram0/comp_algorithmlzo [lz4]echo lzo > /sys/block/zram0/comp_algorithm#设置增加的压缩空间大小echo 512M > /sys/block/zrecho 1G > /sys/block/zram0/mem_limitam0/disksize# 启用zram设备为swap。zram的原理就是分出一块内存当swap分区用,其中的数据是压缩的,这样速度快,而且占用空间小。mkswap /dev/zram0 &&# 给zram设备分配一个高优先级,否则要是放着zram不用,去用硬盘上的swap分区就欲哭无泪了swapon -p 10 /dev/zram0 &&# rc.local要求最后返回0exit 0

对于Mac OS系统,Mac OS X 在2013年发布的Mavericks就增加了这个新特性——压缩内存。

对于Windows而言,需要Windows 10 才支持这个特性,在Win10中,叫做内存压缩,最早在1067版本中引入这个特性,并自动开启。如果不确认是否开启的话,可以使用如下操作,开始菜单右键选择“windows powershell(管理员)”输入以下命令

#开启内存压缩,重启生效Enable-MMAgent -mc#关闭内存压缩,重启生效Disable-MMAgent -mc#查看当前状态Get-mmagent

当然,如果你的电脑足够高端配置,内存也等于或超过了32G,那不建议你开启Zram了。毕竟,内存不用也是浪费!

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多