壓縮可以降低占用空間,顧名思義,內(nèi)存壓縮就是壓縮內(nèi)存,節(jié)省內(nèi)存空間。就目前的技術(shù)而言,I/O的速度遠(yuǎn)遠(yuǎn)慢于這RAM操作速度。因此,如果頻繁地做I/O操作,不僅影響flash使用壽命,還嚴(yán)重影響系統(tǒng)性能。內(nèi)存壓縮是一種讓I/O過(guò)程平滑過(guò)渡的做法, 即盡量減少由于內(nèi)存緊張導(dǎo)致的I/O,提升性能。
介紹 zSwap 技術(shù)
zSwap是Linux內(nèi)核的一個(gè)功能,它為交換頁(yè)提供了一個(gè)壓縮的回寫緩存,作為一種虛擬內(nèi)存壓縮形式。當(dāng)內(nèi)存頁(yè)要被換出時(shí),zSwap不會(huì)把它們移到交換設(shè)備上,而是對(duì)它們進(jìn)行壓縮,然后把它們存儲(chǔ)到系統(tǒng)RAM中動(dòng)態(tài)分配的內(nèi)存池中。后來(lái),向?qū)嶋H的交換設(shè)備的回寫被推遲了,甚至完全避免了,從而大大減少了需要交換的Linux系統(tǒng)的I/O,其代價(jià)是需要額外的CPU周期來(lái)執(zhí)行壓縮。
zSwap允許Linux更有效地利用RAM,因?yàn)樗鼘?shí)際上增加了內(nèi)存容量,而不是在壓縮/解壓縮交換頁(yè)時(shí)稍微增加CPU的使用。zSwap存在于內(nèi)核中,但默認(rèn)并沒有開啟,要使用它必須通過(guò)修改配置文件開啟。
主流內(nèi)存壓縮技術(shù)
zSwap
zSwap是在memory與flash之間的一層緩存,當(dāng)內(nèi)存需要swap出去磁盤的時(shí)候,先通過(guò)壓縮放到zSwap中去,zSwap空間按需增長(zhǎng)。達(dá)到一定程度后則會(huì)按照LRU的順序(前提是使用的內(nèi)存分配方法需要支持LRU)將就最舊的page解壓寫入磁盤swap device,之后將當(dāng)前的page壓縮寫入zSwap。
zSwap本身存在一些缺陷或問(wèn)題:如果開啟當(dāng)zSwap滿交換出backing store的功能, 由于需要將zSwap里的內(nèi)存按LRU順序解壓再swap out,這就要求內(nèi)存分配器支持LRU功能;如果不開啟當(dāng)zSwap滿交換出backing store的功能, 和zRam是類似的。
zRAM
zRram即壓縮的內(nèi)存,使用內(nèi)存模擬block device的做法。實(shí)際不會(huì)寫到塊設(shè)備中去,只會(huì)壓縮后寫到模擬的塊設(shè)備中,其實(shí)也就是還是在RAM中,只是通過(guò)壓縮了。由于壓縮和解壓縮的速度遠(yuǎn)比讀寫I/O好,因此在移動(dòng)終端設(shè)備廣泛被應(yīng)用。
zRram本身存在一些缺陷或問(wèn)題:zRam大小是可靈活配置的,配置多少成為了一個(gè)問(wèn)題;使用zRam可能會(huì)在低內(nèi)存場(chǎng)景由于頻繁的內(nèi)存壓縮導(dǎo)致kswapd進(jìn)程占CPU高;增大了zRam配置,對(duì)系統(tǒng)內(nèi)存碎片是否有影響
zCache
zCache是oracle提出的一種實(shí)現(xiàn)文件頁(yè)壓縮技術(shù),也是memory與block dev之間的一層存儲(chǔ),與zSwap比較接近,但zCache目前壓縮的是文件頁(yè),而zSwap和zRAM壓縮是匿名頁(yè)。
介紹 zstd 壓縮算法
Zstandard是一種實(shí)時(shí)壓縮算法,提供高壓縮率。它提供了非常廣泛的壓縮/速度權(quán)衡,同時(shí)有一個(gè)非??斓慕獯a器支持。它還為小數(shù)據(jù)提供了一種特殊的模式,稱為字典壓縮,并可以從任何樣本集中創(chuàng)建字典。Zstandard庫(kù)是作為使用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
+關(guān)注
關(guān)注
68文章
11077瀏覽量
217024 -
內(nèi)存
+關(guān)注
關(guān)注
8文章
3123瀏覽量
75251 -
移動(dòng)終端
+關(guān)注
關(guān)注
1文章
216瀏覽量
25268
原文標(biāo)題:如何使用 zSwap 提高系統(tǒng)性能
文章出處:【微信號(hào):magedu-Linux,微信公眾號(hào):馬哥Linux運(yùn)維】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
linux內(nèi)核主流的內(nèi)存壓縮技術(shù)介紹

FPGA實(shí)現(xiàn)滑動(dòng)平均濾波算法和LZW壓縮算法
關(guān)于語(yǔ)音芯片音頻壓縮算法研究
語(yǔ)音壓縮算法研究
什么是壓縮算法呢?壓縮算法又是怎么定義的呢?
認(rèn)識(shí)壓縮算法
啃論文俱樂部 | 壓縮算法團(tuán)隊(duì):我們是如何開展對(duì)壓縮算法的學(xué)習(xí)
基于壓縮算法的無(wú)人機(jī)視頻壓縮的研究
主流內(nèi)存壓縮技術(shù)那些事

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

評(píng)論