0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內(nèi)不再提示

zSwap 技術(shù)壓縮算法介紹

馬哥Linux運維 ? 來源:馬哥Linux運維 ? 2023-05-19 09:25 ? 次閱讀

壓縮可以降低占用空間,顧名思義,內(nèi)存壓縮就是壓縮內(nèi)存,節(jié)省內(nèi)存空間。就目前的技術(shù)而言,I/O的速度遠遠慢于這RAM操作速度。因此,如果頻繁地做I/O操作,不僅影響flash使用壽命,還嚴重影響系統(tǒng)性能。內(nèi)存壓縮是一種讓I/O過程平滑過渡的做法, 即盡量減少由于內(nèi)存緊張導致的I/O,提升性能。

介紹 zSwap 技術(shù)

zSwap是Linux內(nèi)核的一個功能,它為交換頁提供了一個壓縮的回寫緩存,作為一種虛擬內(nèi)存壓縮形式。當內(nèi)存頁要被換出時,zSwap不會把它們移到交換設備上,而是對它們進行壓縮,然后把它們存儲到系統(tǒng)RAM中動態(tài)分配的內(nèi)存池中。后來,向?qū)嶋H的交換設備的回寫被推遲了,甚至完全避免了,從而大大減少了需要交換的Linux系統(tǒng)的I/O,其代價是需要額外的CPU周期來執(zhí)行壓縮。

zSwap允許Linux更有效地利用RAM,因為它實際上增加了內(nèi)存容量,而不是在壓縮/解壓縮交換頁時稍微增加CPU的使用。zSwap存在于內(nèi)核中,但默認并沒有開啟,要使用它必須通過修改配置文件開啟。

主流內(nèi)存壓縮技術(shù)

zSwap

zSwap是在memory與flash之間的一層緩存,當內(nèi)存需要swap出去磁盤的時候,先通過壓縮放到zSwap中去,zSwap空間按需增長。達到一定程度后則會按照LRU的順序(前提是使用的內(nèi)存分配方法需要支持LRU)將就最舊的page解壓寫入磁盤swap device,之后將當前的page壓縮寫入zSwap。

zSwap本身存在一些缺陷或問題:如果開啟當zSwap滿交換出backing store的功能, 由于需要將zSwap里的內(nèi)存按LRU順序解壓再swap out,這就要求內(nèi)存分配器支持LRU功能;如果不開啟當zSwap滿交換出backing store的功能, 和zRam是類似的。

zRAM

zRram即壓縮的內(nèi)存,使用內(nèi)存模擬block device的做法。實際不會寫到塊設備中去,只會壓縮后寫到模擬的塊設備中,其實也就是還是在RAM中,只是通過壓縮了。由于壓縮和解壓縮的速度遠比讀寫I/O好,因此在移動終端設備廣泛被應用。

zRram本身存在一些缺陷或問題:zRam大小是可靈活配置的,配置多少成為了一個問題;使用zRam可能會在低內(nèi)存場景由于頻繁的內(nèi)存壓縮導致kswapd進程占CPU高;增大了zRam配置,對系統(tǒng)內(nèi)存碎片是否有影響

zCache

zCache是oracle提出的一種實現(xiàn)文件頁壓縮技術(shù),也是memory與block dev之間的一層存儲,與zSwap比較接近,但zCache目前壓縮的是文件頁,而zSwap和zRAM壓縮是匿名頁。

介紹 zstd 壓縮算法

Zstandard是一種實時壓縮算法,提供高壓縮率。它提供了非常廣泛的壓縮/速度權(quán)衡,同時有一個非常快的解碼器支持。它還為小數(shù)據(jù)提供了一種特殊的模式,稱為字典壓縮,并可以從任何樣本集中創(chuàng)建字典。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

審核編輯:彭靜
聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • cpu
    cpu
    +關注

    關注

    68

    文章

    10804

    瀏覽量

    210833
  • 內(nèi)存
    +關注

    關注

    8

    文章

    2966

    瀏覽量

    73812
  • 移動終端
    +關注

    關注

    1

    文章

    207

    瀏覽量

    24796

原文標題:如何使用 zSwap 提高系統(tǒng)性能

文章出處:【微信號:magedu-Linux,微信公眾號:馬哥Linux運維】歡迎添加關注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關推薦

    linux內(nèi)核主流的內(nèi)存壓縮技術(shù)介紹

    zSwap是在memory與flash之間的一層“cache”,當內(nèi)存需要swap出去磁盤的時候,先通過壓縮放到zSwap中去,zSwap空間按需增長。
    的頭像 發(fā)表于 09-18 15:40 ?5846次閱讀
    linux內(nèi)核主流的內(nèi)存<b class='flag-5'>壓縮</b><b class='flag-5'>技術(shù)</b><b class='flag-5'>介紹</b>

    FPGA實現(xiàn)滑動平均濾波算法和LZW壓縮算法

    采集數(shù)據(jù)中的量化噪聲,在進行數(shù)據(jù)壓縮前采用濾波的預處理技術(shù)。介紹LZW算法和滑動濾波算法的基本理論,詳細闡述用單片F(xiàn)PGA實現(xiàn)兩種
    發(fā)表于 04-24 09:05

    關于語音芯片音頻壓縮算法研究

    大家好,我是做語音芯片的。最近想研究一種壓縮率高,音質(zhì)好,并且解碼簡單。最好能用8位機跑5M可以解碼的算法。編碼可以復雜一些。最也參考了很多國外關于語音壓縮算法,但是感覺好點的
    發(fā)表于 09-18 17:33

    語音壓縮算法研究

    位機跑5M可以解碼的算法。編碼可以復雜一些。最也參考了很多國外關于語音壓縮算法,但是感覺好點的算法解碼都相對比較復雜。歡迎廣大工程師跟我一起探討音頻
    發(fā)表于 09-18 17:38

    關于ADPCM壓縮算法流程介紹

    關于ADPCM壓縮算法流程介紹
    發(fā)表于 06-03 06:44

    什么是壓縮算法呢?壓縮算法又是怎么定義的呢?

    認識壓縮算法想必都有過壓縮和解壓縮文件的經(jīng)歷,當文件太大時,我們會使用文件壓縮來降低文件的占用空間。比如微信上傳文件的限制是100MB,有個
    發(fā)表于 07-28 07:22

    認識壓縮算法

    壓縮算法認識壓縮算法我們想必都有過壓縮和 解壓縮文件的經(jīng)歷,當文件太大時,我們會使用文件
    發(fā)表于 07-28 08:12

    什么是壓縮算法

    什么是壓縮算法呢?壓縮算法又是怎么定義的呢?
    發(fā)表于 10-19 07:25

    壓縮算法是怎么定義的呢

    什么是壓縮算法呢?壓縮算法又是怎么定義的呢?文件是如何存儲的?
    發(fā)表于 10-19 07:01

    啃論文俱樂部 | 壓縮算法團隊:我們是如何開展對壓縮算法的學習

    關于OpenHarmony 啃論文俱樂部壓縮算法團隊大家好!我是上海工程技術(shù)大學交通運輸專業(yè)的一名大二學生,同時在 OpenAtom OpenHarmony(以下簡稱“OpenHarmony”)啃
    發(fā)表于 06-21 11:05

    圖象壓縮算法 JPEG圖象處理算法

    圖象壓縮算法 JPEG圖象處理算法 本文首先介紹
    發(fā)表于 01-02 19:41 ?47次下載

    基于壓縮算法的無人機視頻壓縮的研究

    對 H.264 壓縮技術(shù)的特點進行介紹,對 H.264 編碼器硬件的設計進行研究,并對圖像壓縮算法進行優(yōu)化。研究表明,
    的頭像 發(fā)表于 04-25 14:10 ?3665次閱讀

    主流內(nèi)存壓縮技術(shù)那些事

    zSwap是在memory與flash之間的一層“cache”,當內(nèi)存需要swap出去磁盤的時候,先通過壓縮放到zSwap中去,zSwap空間按需增長。達到一定程度后則會按照LRU的順
    的頭像 發(fā)表于 06-03 15:11 ?3875次閱讀
    主流內(nèi)存<b class='flag-5'>壓縮</b><b class='flag-5'>技術(shù)</b>那些事

    數(shù)據(jù)壓縮算法介紹

    在RPC通信數(shù)據(jù)的傳輸場景下,當通信報文數(shù)據(jù)傳輸較大時,會對數(shù)據(jù)包進行壓縮傳輸,根據(jù)不同傳輸場景,常用的壓縮算法有Zlib、Gzip、Bzip2、Deflater、Lz4、Lzo、Snappy
    的頭像 發(fā)表于 02-28 14:25 ?1238次閱讀
    數(shù)據(jù)<b class='flag-5'>壓縮</b><b class='flag-5'>算法</b>的<b class='flag-5'>介紹</b>

    壓縮算法的類型和應用

    壓縮算法是一種通過減少數(shù)據(jù)量來節(jié)省存儲空間或傳輸數(shù)據(jù)的技術(shù)。壓縮算法可以分為兩種類型:有損壓縮
    的頭像 發(fā)表于 10-21 13:50 ?156次閱讀