你在使用Linux内核的zram吗?

其它类软件,非上述版软件
回复

你在使用Linux内核的zram吗?

正在使用zram
1
25%
zram是什么?没听说过
2
50%
已了解zram,但机器内存够用,不想折腾
1
25%
 
总计票数: 4
科学之子
帖子: 2284
注册时间: 2013-05-26 6:58
系统: Debian 9

你在使用Linux内核的zram吗?

#1

帖子 科学之子 » 2016-03-12 19:33

你在使用Linux内核的zram吗?
我个人感觉zram作为swap纯粹是个有益的方法
官方推荐的分配大小是物理内存总量的200%
在不需要时zram仅仅占用极小的内存空间,并且创建后不会占用额外的CPU时间
你还可以通过创建多个zram设备的方式充分利用多核CPU的速度优势
这是UKSM之类的"内存密度提升"方案暂时不具备的

Sat Mar 12 21:01:34 CST 2016补充:
即使高配置电脑,zram也仍有意义
zram可以使CPU资源得到更有效的利用.
尤其是当高速CPU较为空闲,但内存压力极大时(比如将内存当作硬盘用)
其次内存压力较大时,zram可以避免写入SSD之类的写入寿命有限设备,也是有价值的.

Sat Mar 12 21:24:15 CST 2016补充:
即使情况反过来CPU占用很高,只要内存富裕,ZRAM也不会占用额外的CPU时间
设置合理的情况下ZRAM自身占用的内存空间极小
上次由 科学之子 在 2016-03-12 21:07,总共编辑 1 次。
头像
kashu
帖子: 451
注册时间: 2014-02-07 17:31
系统: Xubuntu 14.04.5 64位

Re: 你在使用Linux内核的zram吗?

#2

帖子 kashu » 2016-03-12 21:54

在网上看了些zram的资料,基本都是说设置成swap来用的
连wikipedia.org里也让我看得很模糊

但在Gentoo的wiki页面里看到这句话了
The zram driver creates a compressed block device in ram. That block device can then be used for swap or general purpose ram disk. (https://wiki.gentoo.org/wiki/Zram

Typically it compresses to a 3:1 ratio. So, 1G of swap uses only 333MB of ram on average.
zram挺好,我觉得可以考虑一下

退一步,假设压缩比是2:1,那我把12GB物理内存里的10GB拿出来做成zram,那就可以变成20GB内存用了? :Misdoubt

楼上的@科学之子,把你用zram的感受说下,有没有使用前的一个测试、使用后的一个测试,对比下效果到底如何?


OS: Xubuntu 14.04.5 LTS 64-bit
CPU: Intel(R) Core(TM) i5-3210M CPU @ 2.50GHz
RAM: 12GB DDR3 1333MHz
128GB SSD + 2TB HDD
神舟优雅A480B-I5B 购于 2012.08

YouTube频道:https://www.youtube.com/channel/UCGSPXZ ... DuDYX8L6Qg
科学之子
帖子: 2284
注册时间: 2013-05-26 6:58
系统: Debian 9

Re: 你在使用Linux内核的zram吗?

#3

帖子 科学之子 » 2016-03-13 2:42

kashu 写了:在网上看了些zram的资料,基本都是说设置成swap来用的
连wikipedia.org里也让我看得很模糊

但在Gentoo的wiki页面里看到这句话了
The zram driver creates a compressed block device in ram. That block device can then be used for swap or general purpose ram disk. (https://wiki.gentoo.org/wiki/Zram

Typically it compresses to a 3:1 ratio. So, 1G of swap uses only 333MB of ram on average.
zram挺好,我觉得可以考虑一下

退一步,假设压缩比是2:1,那我把12GB物理内存里的10GB拿出来做成zram,那就可以变成20GB内存用了? :Misdoubt

楼上的@科学之子,把你用zram的感受说下,有没有使用前的一个测试、使用后的一个测试,对比下效果到底如何?
这样的话10GB数据实际占用5GB内存,然后12-5=7
10+7=17GB

实际感受的话,就是虽然换取的空间很可观,但真用了那么大空间的话,速度会明显下降(但我觉得比交换到硬盘要好很多)
如果此时还运行CPU占用较高的程序就更明显了.
好在合理设置的情况下不会占用额外的CPU时间,在不需要zram时空间损失也极小
新内核还提供接口文件用来设置最大内存占用和压缩算法

如果你用tmpfs的话,建议直接用zram作为交换设备,因为tmpfs就是内存不够用时用交换设备空间
根据我的最新测试的结果,在单纯使用zram作为swap的情况下,swappiness=100是最佳策略
其实硬件配置不一样,采取的策略也不尽相同,你应该自己亲自测试一下适合自己的策略.
因为有时理论和实际并不相同.
就像这次swappiness的测试颠覆了我以前在网上看到常识和预想
回复