0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

zSwap 技术压缩算法介绍

马哥Linux运维 来源:马哥Linux运维 2023-05-19 09:25 次阅读

压缩可以降低占用空间,顾名思义,内存压缩就是压缩内存,节省内存空间。就目前的技术而言,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
    cpu
    +关注

    关注

    68

    文章

    10944

    浏览量

    213860
  • 内存
    +关注

    关注

    8

    文章

    3080

    浏览量

    74578
  • 移动终端
    +关注

    关注

    1

    文章

    213

    浏览量

    24958

原文标题:如何使用 zSwap 提高系统性能

文章出处:【微信号:magedu-Linux,微信公众号:马哥Linux运维】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    相关推荐

    linux内核主流的内存压缩技术介绍

    zSwap是在memory与flash之间的一层“cache”,当内存需要swap出去磁盘的时候,先通过压缩放到zSwap中去,zSwap空间按需增长。
    的头像 发表于 09-18 15:40 6005次阅读
    linux内核主流的内存<b class='flag-5'>压缩</b><b class='flag-5'>技术</b><b class='flag-5'>介绍</b>

    FPGA实现滑动平均滤波算法和LZW压缩算法

    采集数据中的量化噪声,在进行数据压缩前采用滤波的预处理技术介绍LZW算法和滑动滤波算法的基本理论,详细阐述用单片FPGA实现两种
    发表于 04-24 09:05

    关于语音芯片音频压缩算法研究

    大家好,我是做语音芯片的。最近想研究一种压缩率高,音质好,并且解码简单。最好能用8位机跑5M可以解码的算法。编码可以复杂一些。最也参考了很多国外关于语音压缩算法,但是感觉好点的
    发表于 09-18 17:33

    语音压缩算法研究

    位机跑5M可以解码的算法。编码可以复杂一些。最也参考了很多国外关于语音压缩算法,但是感觉好点的算法解码都相对比较复杂。欢迎广大工程师跟我一起探讨音频
    发表于 09-18 17:38

    关于ADPCM压缩算法流程介绍

    关于ADPCM压缩算法流程介绍
    发表于 06-03 06:44

    什么是压缩算法呢?压缩算法又是怎么定义的呢?

    认识压缩算法想必都有过压缩和解压缩文件的经历,当文件太大时,我们会使用文件压缩来降低文件的占用空间。比如微信上传文件的限制是100MB,有个
    发表于 07-28 07:22

    认识压缩算法

    压缩算法认识压缩算法我们想必都有过压缩和 解压缩文件的经历,当文件太大时,我们会使用文件
    发表于 07-28 08:12

    什么是压缩算法

    什么是压缩算法呢?压缩算法又是怎么定义的呢?
    发表于 10-19 07:25

    压缩算法是怎么定义的呢

    什么是压缩算法呢?压缩算法又是怎么定义的呢?文件是如何存储的?
    发表于 10-19 07:01

    啃论文俱乐部 | 压缩算法团队:我们是如何开展对压缩算法的学习

    关于OpenHarmony 啃论文俱乐部压缩算法团队大家好!我是上海工程技术大学交通运输专业的一名大二学生,同时在 OpenAtom OpenHarmony(以下简称“OpenHarmony”)啃
    发表于 06-21 11:05

    图象压缩算法 JPEG图象处理算法

    图象压缩算法 JPEG图象处理算法 本文首先介绍
    发表于 01-02 19:41 47次下载

    基于压缩算法的无人机视频压缩的研究

    对 H.264 压缩技术的特点进行介绍,对 H.264 编码器硬件的设计进行研究,并对图像压缩算法进行优化。研究表明,
    的头像 发表于 04-25 14:10 3938次阅读

    主流内存压缩技术那些事

    zSwap是在memory与flash之间的一层“cache”,当内存需要swap出去磁盘的时候,先通过压缩放到zSwap中去,zSwap空间按需增长。达到一定程度后则会按照LRU的顺
    的头像 发表于 06-03 15:11 4003次阅读
    主流内存<b class='flag-5'>压缩</b><b class='flag-5'>技术</b>那些事

    数据压缩算法介绍

    在RPC通信数据的传输场景下,当通信报文数据传输较大时,会对数据包进行压缩传输,根据不同传输场景,常用的压缩算法有Zlib、Gzip、Bzip2、Deflater、Lz4、Lzo、Snappy
    的头像 发表于 02-28 14:25 1537次阅读
    数据<b class='flag-5'>压缩</b><b class='flag-5'>算法</b>的<b class='flag-5'>介绍</b>

    压缩算法的类型和应用

    压缩算法是一种通过减少数据量来节省存储空间或传输数据的技术压缩算法可以分为两种类型:有损压缩
    的头像 发表于 10-21 13:50 468次阅读