久久久久久久国产免费看-久久久久久久国产视频-久久久久久久久a免费-久久久久久久久国产-久久久久久久久久爱

搜索
網站建設,網站優化,網絡營銷,app開發,小程序開發,全網營銷

400-825-2717互聯網開發&推廣服務提供商

與我們合作

我們專注:網站策劃設計、網絡輿論監控、網站優化及網站營銷、品牌策略與設計
主營業務:網站建設、移動端微信小程序開發、APP開發、網絡運營、云產品·運維解決方案

有一個品牌項目想和我們談談嗎?

您可以填寫右邊的表格,讓我們了解您的項目需求,這是一個良好的開始,我們將會盡快與您取得聯系。當然也歡迎您給我們寫信或是打電話,讓我們聽到您的聲音

您也可通過下列途徑與我們取得聯系:

地 址: 上海市長寧區華寧國際7L

電 話: 400-825-2717(咨詢專線)

電 話: 13054973230(售后客戶服務)

網 址: http://www.586918.cn

傳 真: 021-61488448

郵 箱: [email protected]

快速提交您的需求 ↓

【Linux內核】另一種增大內存的方法——適合CPU性能過剩但RAM少,硬盤讀寫不佳(或容量小)的機器

發布日期:2024-02-23 瀏覽次數:35406

前言

之前在玩幻獸帕魯,自己用了一個 8核8g 的服務器搭了一個服務器,但是我發現 RAM 只有8g是不夠用的,分分鐘爆了(這游戲內存泄漏是真的嚴重。。。。ac05 )所以就想到了用 Swap 增大內存容量,但是由于我使用的服務器的硬盤用的甚至是機械硬盤,I/O速度堪憂。而 CPU 是8核的,跑分也還行,不壓榨白不壓榨,所以就想到了用 zRAM 增大內存了。這里以 Debian 系為例,記錄一下 zRAM 的開啟、掛載、使用、與卸載命令。

具體環境

OS: Debian 12

zRAM 和 Swap 區別

zRAM 和傳統的交換空間(Swap)都是 Linux 系統用來增加可用內存的技術,但它們的工作方式和使用場景有所不同。

傳統交換空間(Swap):

  • 存儲介質: Swap 通常使用硬盤驅動器(HDD)或固態驅動器(SSD)作為交換區。

  • 性能: 因為硬盤速度遠慢于 RAM,使用 Swap 可能會顯著減慢系統速度,尤其是在內存耗盡時。

  • 可靠性: Swap 在不同的物理介質上,因此不會影響 RAM 的壽命。

  • 用途: 在物理內存用完時,可以作為溢出區域,但由于速度慢,通常只適合非常低的內存壓力。

zRAM:

  • 存儲介質: zRAM 是一種壓縮的 RAM 塊設備,它使用內存本身來存儲壓縮的數據。

  • 性能: zRAM 的讀寫速度遠快于傳統 Swap,因為它直接在 RAM 上操作。壓縮和解壓縮數據需要一定的 CPU 資源,但通常這種開銷小于從硬盤讀寫數據的時間。

  • 可靠性: 由于 zRAM使用的是 RAM,頻繁的讀寫可能會對 RAM 的壽命造成影響,盡管實際影響非常小。

  • 用途: zram 非常適合用于擁有有限 RAM 或需要快速交換區的設備,如嵌入式設備或舊計算機,也常用于Android設備。

總結:

zRAM 提供了一種在不增加物理內存的情況下增加有效內存容量的方式,通過在 RAM 中創建一個壓縮塊設備來實現。

傳統的交換空間(Swap)是硬盤上的一部分,當系統的物理內存不足時,用作虛擬內存使用。

zram 特別適合于內存較小的系統,因為它可以以較小的性能開銷增加一些“虛擬”的內存,雖然這會增加 CPU 的負擔。

傳統 Swap 則適用于有足夠硬盤空間且內存壓力不是非常大的情況,特別是當系統負載不高,但偶爾需要更大內存時。

更佳實踐可能是將 zRAM 和傳統 Swap 結合起來使用,以獲得更靈活和更優化的性能。在內存緊張時,zRAM 可以提供更快的數據交換,而在 zRAM 也用盡時,傳統 Swap 可以作為最后的備份。

開啟/加載 zRAM 模塊

zRAM 是 Linux 內核的模塊,需要使用 modprobe 命令加載 zRAM 模塊。具體為 modprobe zram num_devices=1

zRAM 模塊的參數為num_devices,zram num_devices=1 表示創建一個設備文件,該文件將會保存在設備目錄,文件名稱是 /dev/zram0。

這里,如果 num_devices 的數值不等于 1,內核就會創建多個 zram 文件,具體為: /dev/zram{0,1,2,3...}。

為了檢查 zRAM 是否開啟,我們需要使用 lsmod 命令 :使用 lsmod  | grep zram 確認是否成功加載,如果成功開啟,將會打印類似這樣的消息


zram                   40960  2
zsmalloc               32768  1 zram

完整命令:


sudo modprobe zram num_devices=1
lsmod  | grep zram

開機自動開啟/加載 zRAM 模塊

modprobe 加載的模塊僅在當前運行時可用,重新啟動計算機后,會消失。為了自動加載 zRAM 模塊,需要創建內核模塊載入文件和模塊的配置文件。

載入 zRAM 模塊。需要在 /etc/modules-load.d/ 目錄創建文件 zram.conf,運行命令 echo "zram" | sudo tee -a /etc/modules-load.d/zram.conf

然后創建模塊的配置文件 zram.conf。這個文件需要在目錄 /etc/modules-load.d/,運行命令 echo "options zram num_devices=1" | sudo tee -a /etc/modprobe.d/zram.conf

完整命令:


echo "zram" | sudo tee -a /etc/modules-load.d/zram.confecho "options zram num_devices=1" | sudo tee -a /etc/modprobe.d/zram.conf

配置 zRAM

通常 zRAM 最常見的配置是大小 disksize 和壓縮算法 comp_algorithm。

控制 zRAM 的大小的文件是 /sys/block/zram0/disksize ,壓縮算法文件是 /sys/block/zram0/comp_algorithm 。

可以運行 cat 命令查看兩個文件來確定 zRAM 文件的大小和壓縮算法,例如命令 cat /sys/block/zram0/disksize 查看 zRAM 大小。(zRAM 大小以實際 RAM 的 1-1.5倍 為宜,當然可以更大)

同樣也可以通過兩個文件設置 zRAM 文件的大小和壓縮算法,例如命令 echo "8G" | sudo tee /sys/block/zram0/disksize 修改 zRAM 的大小。(對于壓縮算法這里推薦zstd壓縮算法,各種算法區別具體可以Google)

注意: 請務必先選擇壓縮算法再選擇 zRAM 文件大小,不然會出現設備繁忙的問題,也就是無法修改壓縮算法了,需要卸載 zRAM 后重新配置。

完整命令:


cat /sys/block/zram0/disksizecat /sys/block/zram0/comp_algorithmecho "zstd" | sudo tee /sys/block/zram0/comp_algorithmecho "8G" | sudo tee /sys/block/zram0/disksize

自動進行 zRAM 配置

由于 /sys 目錄是基于內存的文件系統,因此同樣的,重啟系統后,我們設置的 zRAM 參數將不再存在。為了實現開機自動加載 zRAM 的參數,需要使用 udev 進行設置。

udev 是一個用戶空間系統(我的理解是,它就是 Linux 設備管理器)。它使操作系統管理員能夠為設備事件運行用戶指定的程序或者腳本,也可以在添加設備時指定設備參數。

要設置 zRAM 的大小,可以在 udev 規則文件的 ATTR 指定 zRAM 大小 disksize,ATTR{disksize}="8G" 表示設置 zRAM 的大小是 8G。

要設置 zRAM 的其它屬性,可以在 udev 規則文件指定多個 ATTR 屬性設置設備參數。例如設置 zRAM 壓縮算法 ,可以添加屬性 ATTR{comp_algorithm}="zstd"。

完整命令:


echo 'KERNEL=="zram0", ATTR{disksize}="8G",TAG+="systemd"' | sudo tee  /etc/udev/rules.d/99-zram.rulesecho 'KERNEL=="zram0", ATTR{comp_algorithm}="zstd", ATTR{disksize}="8G", TAG+="systemd"' | sudo tee  /etc/udev/rules.d/99-zram.rules

掛載 zRAM

要在當前運行時掛載 zRAM ,使用方式類似于 Swap 。首先需要將 zRAM 文件進行格式化,運行命令 sudo mkswap /dev/zram0

當格式化完成后,為了讓系統識別 zRAM 文件,因此還需要啟用 zRAM 文件。可以運行命令 sudo swapon /dev/zram0 啟用 zRAM 文件。

如果你系統已經存在 Swap ,那么總的交換空間的大小是zRAM的大小加 Swap 的大小。

完整命令:


sudo mkswap /dev/zram0
sudo swapon /dev/zram0

自動掛載 zRAM

同樣的,為了避免重啟后 zRAM 沒有自動掛載,我們需要使用 systemd 命令,在系統啟動時自動激活 zRAM 文件并作為交換空間掛載。

使用你喜歡的方式創建文件 /etc/systemd/system/zram.service 并且編輯它。由于我是 vim 黨,所以這里我使用vim 創建并編輯文件 SystemD 單元文件。

編輯完成后,保存文件并退出 vim 編輯器,然后運行命令 sudo systemctl enable zram 啟用 zram 服務,最后重啟計算機。

完整命令:


sudo vim /etc/systemd/system/zram.service
sudo systemctl enable zram

zram.service內容:


[Unit]Description=Swap with zramAfter=multi-user.target[Service]Type=oneshotRemainAfterExit=trueExecStartPre=/sbin/mkswap /dev/zram0ExecStart=/sbin/swapon /dev/zram0ExecStop=/sbin/swapoff /dev/zram0[Install]WantedBy=multi-user.target

停止并禁用 zram 的服務

說完了基本使用,接下倆就要講講停用與卸載。(我最討厭那些講了怎么使用但是不講怎么卸載的教程了,讓我覺得體驗很差想要卸載的時候不知道自己卸載是否徹底,讓我這個對硬盤有極端控制欲的人很難受 ac05 )

我們上面將 zram 作為服務運行,所以可以通過 systemd 進行控制。以下命令可以停止并禁用 zram 服務:


sudo systemctl stop zramswap.service
sudo systemctl disable zramswap.service

卸載 zram 模塊

可以使用 rmmod命令完全卸載zram模塊。首先,確保沒有任何 zram 設備在使用中:


sudo swapoff /dev/zram0

然后,卸載 zram 內核模塊:


sudo rmmod zram

移除/注釋相關的 fstab 條目

如果 /etc/fstab 文件中有關于 zram 的條目,應該將其注釋掉或刪除。打開 /etc/fstab 文件:


sudo vim /etc/fstab

找到類似下面的行:


/dev/zram0 none swap defaults 0 0

將其注釋掉(在行首添加 #)或刪除。

參考文獻

好多前人的智慧,這里略了


GO 知識
查看經典案例

TOP

QQ客服

免費電話

微信咨詢 在線咨詢 免費電話
獲取報價
您的稱呼:

*

您的電話:

*

您的郵箱:

*

提交 重置
重要的事情,電話里聊

接通客服

不方便的時候線上咨詢,在線等哦
主站蜘蛛池模板: 国内在线亚洲精品第一线 | 91入口免费网站大全 | 久久久久婷婷国产综合青草 | 精品国偷自产在线不卡短视频 | 妞干网精品| 中文字幕一区在线观看视频 | 色综合久久久久久 | 91麻豆免费观看 | 国产成人综合久久精品亚洲 | 国产高清视频免费在线观看 | 网站免费黄 | 国产精品亚洲第一区二区三区 | 亚洲欧美另类在线视频 | 国产在线成人一区二区 | 国产大尺度福利视频在线观看 | 免费久福利视频在线观看 | 久久亚洲黄色 | 看一级毛片 | 中文字幕亚洲不卡在线亚瑟 | 视频一区在线免费观看 | 九九色在线视频 | 国产综合亚洲欧美日韩一区二区 | 国产精品久久久久久久久免费hd | 高清欧美一区二区免费影视 | 黑人超长巨大xxxxxx | 国产在线精品视频 | 日韩大片在线播放 | 性视频播放免费视频 | 色爱综合区五月小说 | 久久久久久亚洲精品 | 国产系列在线播放 | 污视频网址 | 看黄色一级片子 | 欧美1区二区三区公司 | 久草水蜜桃 | 宗合久久 | 小黄片毛片 | 日本美女黄色片 | 国产免费私拍一区二区三区 | 欧美啪视频 | 成人网在线看 |