压缩可以降低占用空间,顾名思义,内存压缩就是压缩内存,节省内存空间。就目前的技术而言,I/O的速度远远慢于这RAM操作速度。因此,如果频繁地做I/O操作,不仅影响flash使用寿命,还严重影响系统性能。内存压缩是一种让I/O过程平滑过渡的做法, 即尽量减少由于内存紧张导致的I/O,提升性能。
介绍 zSwap 技术
zSwap是Linux内核的一个功能,它为交换页提供了一个压缩的回写缓存,作为一种虚拟内存压缩形式。当内存页要被换出时,zSwap不会把它们移到交换设备上,而是对它们进行压缩,然后把它们存储到系统RAM中动态分配的内存池中。后来,向实际的交换设备的回写被推迟了,甚至完全避免了,从而大大减少了需要交换的Linux系统的I/O,其代价是需要额外的CPU周期来执行压缩。
zSwap允许Linux更有效地利用RAM,因为它实际上增加了内存容量,而不是在压缩/解压缩交换页时稍微增加CPU的使用。zSwap存在于内核中,但默认并没有开启,要使用它必须通过修改配置文件开启。
主流内存压缩技术
zSwap
zSwap是在memory与flash之间的一层缓存,当内存需要swap出去磁盘的时候,先通过压缩放到zSwap中去,zSwap空间按需增长。达到一定程度后则会按照LRU的顺序(前提是使用的内存分配方法需要支持LRU)将就最旧的page解压写入磁盘swap device,之后将当前的page压缩写入zSwap。
zSwap本身存在一些缺陷或问题:如果开启当zSwap满交换出backing store的功能, 由于需要将zSwap里的内存按LRU顺序解压再swap out,这就要求内存分配器支持LRU功能;如果不开启当zSwap满交换出backing store的功能, 和zRam是类似的。
zRAM
zRram即压缩的内存,使用内存模拟block device的做法。实际不会写到块设备中去,只会压缩后写到模拟的块设备中,其实也就是还是在RAM中,只是通过压缩了。由于压缩和解压缩的速度远比读写I/O好,因此在移动终端设备广泛被应用。
zRram本身存在一些缺陷或问题:zRam大小是可灵活配置的,配置多少成为了一个问题;使用zRam可能会在低内存场景由于频繁的内存压缩导致kswapd进程占CPU高;增大了zRam配置,对系统内存碎片是否有影响
zCache
zCache是oracle提出的一种实现文件页压缩技术,也是memory与block dev之间的一层存储,与zSwap比较接近,但zCache目前压缩的是文件页,而zSwap和zRAM压缩是匿名页。
介绍 zstd 压缩算法
Zstandard是一种实时压缩算法,提供高压缩率。它提供了非常广泛的压缩/速度权衡,同时有一个非常快的解码器支持。它还为小数据提供了一种特殊的模式,称为字典压缩,并可以从任何样本集中创建字典。Zstandard库是作为使用BSD许可证的开源软件提供的。
开启 zSwap 的方法
#editgrubasroot $sudovim/etc/default/grub GRUB_CMDLINE_LINUX_DEFAULT="quietsplashzswap.enabled=1zswap.compressor=zstdzswap.zpool=z3fold" #updategrub $sudoupdate-grub
#installzstdandZ3fold $sudoaptinstallcheckinstallbuild-essential $sudoaptinstallzstd#notthelatestversion #editthemodulesfile $sudovim/etc/initramfs-tools/modules ... zstd zstd_compress z3fold #updateinitramfs $sudoupdate-initramfs-u-kall #restartPCandverifyZSWAPifenabled $cat/sys/module/zswap/parameters/enabled Y #verifyZSWAPifitsusingzstdandz3fold $sudodmesg|grep-izswap: [1.059997]zswap:loadedusingpoolzstd/z3fold
-
cpu
+关注
关注
68文章
10944浏览量
213860 -
内存
+关注
关注
8文章
3080浏览量
74578 -
移动终端
+关注
关注
1文章
213浏览量
24958
原文标题:如何使用 zSwap 提高系统性能
文章出处:【微信号:magedu-Linux,微信公众号:马哥Linux运维】欢迎添加关注!文章转载请注明出处。
发布评论请先 登录
相关推荐
FPGA实现滑动平均滤波算法和LZW压缩算法
关于语音芯片音频压缩算法研究
语音压缩算法研究
什么是压缩算法呢?压缩算法又是怎么定义的呢?
啃论文俱乐部 | 压缩算法团队:我们是如何开展对压缩算法的学习
基于压缩算法的无人机视频压缩的研究
主流内存压缩技术那些事

数据压缩算法的介绍

评论