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

在 Linux 上用 zram 替代傳統交換空間

系統 Linux
zram 是一個用于創建內存壓縮緩存的工具,特別是可以用作交換空間。

我在我的電腦上花了很多時間(我是說工作),我發現了很多有趣的東西。其中最近引起我注意的是 ??zram0??? 設備。我是在幾個月前寫一篇文章時第一次注意到它,它顯示在 ??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 是一個用于創建內存內壓縮緩存的工具,特別是作為交換空間使用。

但為什么呢?

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

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

該頁面的其余部分是關于它的細節、好處、副作用和反饋。

Linux 上用于交換空間的 zram

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

節省交換空間

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

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

我找到的關于 zram 功能的文檔在 zram 如何根據內存大小分配空間,以及分配給 zram 交換空間的數量方面是不一致的。

由于缺乏權威性的文檔,我進行了一些實驗來憑經驗確定用于分配 zram 交換空間的算法。我為此使用了我自己的物理和虛擬系統。結果很有趣,與我迄今為止發現的任何文檔都不一致。

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

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

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

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

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

  • 內存 ? 8 GB:0.95 × 內存
  • 內存 > 8 GB:8 GB

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

管理 zram 交換空間

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

# 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?? 配置文件的最后一行改變默認的 zram 交換空間大小。但我建議不要這樣做,除非你能明確說明這樣做的原因,并在你做任何改變后測試你的結果。像 Linux 中的許多其他配置默認值一樣,zram 的默認值已經被很好地測試過了,適合大多數使用情況。

監控 zram

可以使用 ??zramctl?? 工具來查看 zram 的當前狀態。

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

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

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

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

停用 zram

??swapoff -a?? 命令會關閉 zram 交換空間以及用作交換的傳統 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?? 在這些命令中并沒有顯示為交換空間,直到它被用于該目的。這給我造成了一些困惑,直到我的實驗表明這是事實。

創建 zram 交換空間

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

對于 Fedora 32,它是默認使用 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?? 服務:

# 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 改進交換空間

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

責任編輯:龐桂玉 來源: Linux中國
相關推薦

2015-06-19 11:04:29

linux運維

2015-06-16 10:41:57

Linux清除內存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緩存

2019-11-07 15:02:00

Linuxstrace系統調用

2023-09-26 10:52:38

LinuxDoxygen

2021-07-18 11:43:58

Linux密碼加密

2019-08-01 09:35:09

LinuxBashmessages

2021-12-12 09:34:12

Linux轉換音頻SoundConver

2022-03-06 20:24:50

音樂播放器Juk開源

2021-10-08 14:14:03

jconsoleJavaLinux

2022-02-28 09:24:17

KWriteKateLinux

2018-10-15 10:32:10

Linux操作系統命令

2012-07-26 09:39:04

點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 国产精品欧美一区二区三区 | 超碰欧美 | 亚洲天堂影院 | 国产精品美女久久久久久免费 | 国产精品精品久久久久久 | 国产蜜臀97一区二区三区 | 国产福利资源 | 国产精品一区二区在线免费观看 | 国产一区不卡 | 日韩中文一区二区三区 | 国产精品久久久久久久久免费软件 | 成人av影院 | 国产精品久久久亚洲 | 中文字幕亚洲视频 | 91啪影院| 一级黄色片免费在线观看 | 亚洲精品一区二区三区在线 | 久草视频在线播放 | av网站在线看 | 日日碰狠狠躁久久躁96avv | 天天天堂 | 亚洲三级在线 | 欧美久久久久久久久中文字幕 | 成人av网站在线观看 | 欧美日韩在线一区二区三区 | 免费的色网站 | 国产福利免费视频 | av影音| 久久精品国产一区二区电影 | 国产成人福利在线观看 | 久久99久久 | 99成人精品 | 亚洲成人三级 | 超碰人人人 | 在线观看亚洲 | 日韩精品一区二区三区在线播放 | 国产乱码精品一区二区三区忘忧草 | 午夜在线| 国产成人99 | 福利视频网站 | 中文字幕色站 |