成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

在 Linux 上用 zram 替代傳統(tǒng)交換空間

系統(tǒng) Linux
zram 是一個用于創(chuàng)建內(nèi)存壓縮緩存的工具,特別是可以用作交換空間。

我在我的電腦上花了很多時間(我是說工作),我發(fā)現(xiàn)了很多有趣的東西。其中最近引起我注意的是 ??zram0??? 設(shè)備。我是在幾個月前寫一篇文章時第一次注意到它,它顯示在 ??lsblk?? 命令的輸出中:

# lsblkNAME          MAJ:MIN RM   SIZE RO TYPE MOUNTPOINTSsda             8:0    0 931.5G  0 disk├─sda1          8:1    0   600M  0 part[...]zram0         252:0    0     8G  0 disk [SWAP]

它被識別為交換空間,這就是首先引起我的好奇心的原因,所以我做了一些研究。zram 最初被稱為 “壓縮緩存compcache”,即 “壓縮的高速緩存”。事實證明,zram 是一個用于創(chuàng)建內(nèi)存內(nèi)壓縮緩存的工具,特別是作為交換空間使用。

但為什么呢?

當(dāng)我開始研究 zram 時,我只發(fā)現(xiàn)了幾篇關(guān)于將 zram 用于交換空間的基礎(chǔ)文章。起初,這對我來說似乎有點違反直覺。畢竟,如果你的內(nèi)存快用完了,你把頁面交換到內(nèi)存中的虛擬驅(qū)動器中,有什么好處呢?

然后我找到了 Fedora 項目的維基頁面,它提議使用 ??zram 交換空間??swap-on-zram。該建議說:“交換是有用的,除了它的速度很慢。zram 是一個使用了壓縮的內(nèi)存驅(qū)動器。在啟動時創(chuàng)建一個 zram 交換空間,并且不再使用默認(rèn)的交換分區(qū)。”

該頁面的其余部分是關(guān)于它的細(xì)節(jié)、好處、副作用和反饋。

Linux 上用于交換空間的 zram

使用 zram 作為交換空間,與常規(guī)的基于分區(qū)或基于文件的交換空間做的事情相同。當(dāng)內(nèi)存壓力過大時,一些最近使用最少的數(shù)據(jù)會被移到交換空間。平均來說,它會被壓縮到其原始大小的 50% 左右,并被放置在內(nèi)存的 zram 空間中。這比將這些內(nèi)存頁存儲在硬盤上要快得多,并可以釋放出它所使用的內(nèi)存用于其他用途。

節(jié)省交換空間

我試圖找到關(guān)于配置多少交換空間或 zram 交換空間的總結(jié)建議。這使我重新回顧了交換空間的設(shè)置,以及我之前的文章《??現(xiàn)代 Linux 系統(tǒng)的正確交換空間是多少???》。就我所知,從 RHEL 和 Fedora 的最新文檔來看,推薦的交換空間數(shù)量并沒有改變。不過,該文檔忽略了 zram 的使用。

然而,在不使用 zram 的舊版 Linux 或 zram 被禁用的情況下,之前文章中的表格仍然為交換空間的分配提供了一個好的起點。

我找到的關(guān)于 zram 功能的文檔在 zram 如何根據(jù)內(nèi)存大小分配空間,以及分配給 zram 交換空間的數(shù)量方面是不一致的。

由于缺乏權(quán)威性的文檔,我進(jìn)行了一些實驗來憑經(jīng)驗確定用于分配 zram 交換空間的算法。我為此使用了我自己的物理和虛擬系統(tǒng)。結(jié)果很有趣,與我迄今為止發(fā)現(xiàn)的任何文檔都不一致。

在所有足夠大的系統(tǒng)上,zram 的默認(rèn)大小是 8GB,但在內(nèi)存較小的主機上通常會大大減少。在我用于測試的一臺虛擬機(VM)上,可以訪問 4GB 的內(nèi)存,zram 的虛擬交換空間被分配為 3.8GB。我的一臺舊戴爾電腦擁有 8GB 的內(nèi)存,zram 被設(shè)置為 7.6GB。當(dāng)內(nèi)存減少到 2GB 時,zram 就減少到 1.9GB。

我擁有的所有內(nèi)存超過 8GB 的物理和虛擬主機都顯示正好是 8GB 的 zram。這包括我擁有 64GB 內(nèi)存的主工作站和其他擁有 16GB 或 32GB 內(nèi)存的主機。

基于這幾個數(shù)據(jù)點,我可以得出這樣的結(jié)論:目前的默認(rèn)設(shè)置是最多 8GB 的 zram,而在 8GB 或以下的主機上,zram 占內(nèi)存的 95%。

我讀過一些文章,其中提到了 zram 交換空間的其他大小,甚至高達(dá) 100% 的內(nèi)存,但這些似乎都是理論上的,而不是現(xiàn)實。

你的發(fā)行版可能不同,但這里是 Fedora 和類似發(fā)行版的實際 zram 交換空間的分配情況:

  • 內(nèi)存 ? 8 GB:0.95 × 內(nèi)存
  • 內(nèi)存 > 8 GB:8 GB

請注意,zram 交換空間大小的算法并沒有基于對任何給定的現(xiàn)實世界的系統(tǒng)或應(yīng)用程序的 “最佳” 交換大小的建議。這種 zram 交換空間的分配是一種相當(dāng)概率性的方法,它應(yīng)該在廣泛的 Linux 主機上運行良好。然而,最大的 zram 交換空間大小被配置為 8GB,而且我一直推薦 8GB 作為傳統(tǒng)交換空間的最大容量,我想我可以說它反映了 zram 交換空間的最佳大小。

管理 zram 交換空間

zram 的默認(rèn)值保存在 ??/usr/lib/systemd/zram-generator.conf?? 配置文件中。以下是我的一個測試虛擬機,分配了 5097GB 的內(nèi)存。

# cat /usr/lib/systemd/zram-generator.conf# This config file enables a /dev/zram0 device with the default settings:# - size - same as available RAM or 8GB, whichever is less# - compression - most likely lzo-rle## To disable, uninstall zram-generator-defaults or create empty# /etc/systemd/zram-generator.conf file.[zram0]zram-size= min(ram, 8192)

你可以在 ??zram-generator.conf?? 配置文件的最后一行改變默認(rèn)的 zram 交換空間大小。但我建議不要這樣做,除非你能明確說明這樣做的原因,并在你做任何改變后測試你的結(jié)果。像 Linux 中的許多其他配置默認(rèn)值一樣,zram 的默認(rèn)值已經(jīng)被很好地測試過了,適合大多數(shù)使用情況。

監(jiān)控 zram

可以使用 ??zramctl?? 工具來查看 zram 的當(dāng)前狀態(tài)。

# zramctlNAME       ALGORITHM DISKSIZE DATA COMPR TOTAL STREAMS MOUNTPOINT/dev/zram0 lzo-rle       4.8G   4K   80B   12K       4[SWAP]

傳統(tǒng)的 ??swapon?? 命令也可以用來查看交換,包括作為交換使用的 zram:

# swapon --showNAME       TYPE      SIZE USED PRIO/dev/zram0 partition 4.8G   0B  100

需要注意的是,??zramctl?? 在不包含數(shù)據(jù)時不報告 zram,所以結(jié)果會包含空輸出。而像 ??lsblk??、??swapon??、 ??top??、??free??、??htop?? 等工具,即使不包含數(shù)據(jù),也會顯示 zram。

停用 zram

??swapoff -a?? 命令會關(guān)閉 zram 交換空間以及用作交換的傳統(tǒng) HDD 或 SSD 存儲。??swapon -a?? 命令在 zram 為空時不顯示它,可以使用 ??zramctl /dev/zram0?? 代替。

# swapon --show# lsblkNAME          MAJ:MIN RM  SIZE RO TYPE MOUNTPOINTSsda             8:00  120G  0 disk├─sda1          8:10    1G  0 part /boot/efi├─sda2          8:20    1G  0 part /boot└─sda3          8:30  118G  0 part  ├─vg01-root 253:00   10G  0 lvm  /  ├─vg01-swap 253:10    3G  0 lvm  [SWAP]  ├─vg01-usr  253:10   30G  0 lvm  /usr  ├─vg01-home 253:20   10G  0 lvm  /home  ├─vg01-var  253:30   30G  0 lvm  /var  └─vg01-tmp  253:40   10G  0 lvm  /tmpsr0            11:01 1024M  0 romzram0         252:00    0B  0 disk# zramctl## zramctl /dev/zram0NAME       ALGORITHM DISKSIZE DATA COMPR TOTAL STREAMS MOUNTPOINT/dev/zram0 lzo-rle         0B   0B    0B    0B       4

注意,??/dev/zram0?? 在這些命令中并沒有顯示為交換空間,直到它被用于該目的。這給我造成了一些困惑,直到我的實驗表明這是事實。

創(chuàng)建 zram 交換空間

zram 本身已經(jīng)存在了大約 20 年,但只是在過去的一兩年里才在一些發(fā)行版上作為交換空間使用。你的一些或所有主機上當(dāng)前的 Linux 環(huán)境可能沒有用 zram 創(chuàng)建交換空間。如果是這種情況,它可以很容易地被補救。

對于 Fedora 32,它是默認(rèn)使用 zram 交換空間之前的最后一個版本,它只需要三個簡單的命令。

首先,驗證是否存在 ??zram-swap.service?? 文件,它作為 ??zram?? RPM 包的一部分安裝:

# systemctl status zram-swap● zram-swap.service - Enable compressed swap in memory using zram     Loaded: loaded (/usr/lib/systemd/system/zram-swap.service; disabled; vendor preset: disabled)     Active: inactive (dead)

接下來,安裝 ??zram-generator-defaults?? 和 ??zram-generator?? 軟件包:

# dnf install zram-generator-defaults zram-generator

啟用并啟動 ??zram-swap?? 服務(wù):

# systemctl enable zram-swap.service# systemctl start zram-swap.service

然后驗證 ??zram0?? 是否存在并被用作交換空間:

# lsblkNAME          MAJ:MIN RM  SIZE RO TYPE MOUNTPOINTsda             8:00  120G  0 disk├─sda1          8:10    2G  0 part /boot└─sda2          8:20  118G  0 part  ├─vg01-root 253:00   10G  0 lvm  /  ├─vg01-swap 253:10    3G  0 lvm  [SWAP]  ├─vg01-usr  253:20   35G  0 lvm  /usr  ├─vg01-tmp  253:30   15G  0 lvm  /tmp  ├─vg01-var  253:40   35G  0 lvm  /var  └─vg01-home 253:50   20G  0 lvm  /homesr0            11:01 1024M  0 romzram0         252:00  7.5G  0 disk [SWAP]

用 zram 改進(jìn)交換空間

這就是全部內(nèi)容了。在 Fedora 上這很容易。不同的發(fā)行版可能也一樣簡單,只是軟件包名稱和命令的細(xì)節(jié)可能不同。在你的電腦上試試 zram 交換空間吧。在我的下一篇文章中,我將進(jìn)一步演示一些 zram 選項。

責(zé)任編輯:龐桂玉 來源: Linux中國
相關(guān)推薦

2015-06-19 11:04:29

linux運維

2015-06-16 10:41:57

Linux清除內(nèi)存Buffer

2021-07-12 17:45:25

LinuxTealdeer手冊頁

2021-12-03 15:04:06

FlatpakLinux

2021-06-29 06:39:21

Linuxdust命令du命令

2023-05-11 13:55:00

LinuxKdenlive編輯視頻

2022-01-09 15:00:16

LinuxAudacity聲音編輯器

2023-02-13 15:03:33

JDKJavaHotSpot

2020-10-27 11:00:57

LinuxRAM緩存

2021-12-12 09:34:12

Linux轉(zhuǎn)換音頻SoundConver

2022-03-06 20:24:50

音樂播放器Juk開源

2022-02-28 09:24:17

KWriteKateLinux

2021-10-08 14:14:03

jconsoleJavaLinux

2023-09-26 10:52:38

LinuxDoxygen

2021-07-18 11:43:58

Linux密碼加密

2019-08-01 09:35:09

LinuxBashmessages

2019-11-07 15:02:00

Linuxstrace系統(tǒng)調(diào)用

2018-10-15 10:32:10

Linux操作系統(tǒng)命令

2012-07-26 09:39:04

點贊
收藏

51CTO技術(shù)棧公眾號

主站蜘蛛池模板: 久久精品国产久精国产 | 亚洲精品综合 | 日本中文字幕在线观看 | 做a的各种视频 | 美女福利网站 | 中文字幕一区二区在线观看 | 欧美精品乱码久久久久久按摩 | 亚洲福利一区二区 | 国产大片黄色 | 91精品久久久久久久久久入口 | 午夜天堂精品久久久久 | 精品一区二区三区中文字幕 | www.色.com| 国产精品揄拍一区二区 | 久久ww| 亚洲区中文字幕 | 国产精品免费av | 日本午夜免费福利视频 | 欧美激情亚洲激情 | 亚洲91精品 | 欧美成人a∨高清免费观看 欧美日韩中 | 久久久入口 | 一级大黄色片 | 国产毛片av | 拍真实国产伦偷精品 | 国产精品久久久久aaaa | 91高清在线观看 | 91国产精品 | 日日夜夜av | 精品欧美一区二区三区久久久 | 国产精品久久久久久一区二区三区 | 黑人一级片视频 | 国产精品国产a | 欧美在线国产精品 | 精品熟人一区二区三区四区 | 日本黄色大片免费看 | 日韩一区二区三区av | 午夜天堂精品久久久久 | 91视频在线看 | 久久久久一区二区三区四区 | 欧美精品影院 |