壓縮可以降低占用空間,顧名思義,內(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
-
cpu
+關注
關注
68文章
10804瀏覽量
210833 -
內(nèi)存
+關注
關注
8文章
2966瀏覽量
73812 -
移動終端
+關注
關注
1文章
207瀏覽量
24796
原文標題:如何使用 zSwap 提高系統(tǒng)性能
文章出處:【微信號:magedu-Linux,微信公眾號:馬哥Linux運維】歡迎添加關注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關推薦
評論