Raspberry Pi 效能:新增 ZRAM 並更改核心參數

幾週前我發布了 Pinebook Pro 評測。 由於Raspberry Pi 4也是基於ARM的,所以上一篇文章中提到的一些最佳化非常適合它。 我想分享這些技巧,看看您是否能體驗到相同的效能改進。

在您的電腦中安裝 Raspberry Pi 後 家庭伺服器機房 我注意到,在 RAM 短缺的時候,它會變得非常反應遲鈍,甚至凍結。 為了解決這個問題,我添加了ZRAM並對核心參數進行了一些更改。

在 Raspberry Pi 上啟動 ZRAM

Raspberry Pi 效能:新增 ZRAM 並更改核心參數

零記憶體 在 RAM 中建立一個名為 /dev/zram0(或 1、2、3 等)的區塊儲存。 寫入的頁面被壓縮並儲存在記憶體中。 這允許非常快的 I/O,並且還可以透過壓縮釋放記憶體。

Raspberry Pi 4 配備 1、2、4 或 8 GB RAM。 我將使用 1GB 型號,因此請根據您的型號調整說明。 使用 1 GB ZRAM 時,預設交換檔案(速度很慢!)的使用頻率將會降低。 我用了這個腳本 zram 交換 用於安裝和自動配置。

上面連結的存儲庫中提供了說明。 安裝:

git clone https://github.com/foundObjects/zram-swap.git
cd zram-swap && sudo ./install.sh

如果你想編輯配置:

vi /etc/default/zram-swap

另外,您可以透過安裝來啟動ZRAM zram-tools. 如果您使用此方法,請務必編輯配置 在文件中 /etc/default/zramswap,並安裝約 1 GB ZRAM:

sudo apt install zram-tools

安裝後,您可以使用以下命令查看ZRAM儲存統計資料:

sudo cat /proc/swaps
Filename				Type		Size	Used	Priority
/var/swap                               file		102396	0	-2
/dev/zram0                              partition	1185368	265472	5
pi@raspberrypi:~ $

添加核心參數以更好地使用 ZRAM

現在讓我們修復當 Raspberry Pi 在最後一刻切換到交換時系統的行為,這通常會導致凍結。 讓我們在文件中添加幾行 /etc/sysctl.conf中 並重新啟動。

這些行 1) 會延遲不可避免的記憶體耗盡,增加核心快取的壓力和2) 他們更早開始為記憶耗盡做好準備,提前啟動交換。 但透過 ZRAM 交換壓縮記憶體會高效得多!

以下是要在文件末尾添加的行 /etc/sysctl.conf中:

vm.vfs_cache_pressure=500
vm.swappiness=100
vm.dirty_background_ratio=1
vm.dirty_ratio=50

然後我們重新啟動系統或使用以下命令啟動變更:

sudo sysctl --system

vm.vfs_cache_Pressure=500 增加快取壓力,從而增加核心回收用於快取目錄和索引物件的記憶體的傾向。 您將在更長的時間內使用更少的記憶體。 早期的交換抵消了性能的急劇下降。

vm.swappiness = 100 增加核心交換記憶體頁面的積極程度的參數,因為我們首先使用 ZRAM。

vm.dirty_background_ratio=1 & vm.dirty_ratio=50 - 後台程序在達到 1% 限制時將立即開始記錄,但係統不會強制同步 I/O,直到達到 dirty_ratio 50%。

如果您有以下四行(與 ZRAM 一起使用時)將有助於提高效能 不可避免地 RAM 耗盡,開始過渡到交換,就像我的一樣。 知道這個事實,並且考慮到 ZRAM 中的記憶體壓縮了三倍,最好提前啟動此交換。

對緩存施加壓力是有幫助的,因為我們本質上是在告訴內核,“嘿,看,我沒有任何額外的內存可用於緩存,所以請盡快擺脫它,只存儲最常用/最重要的數據。”

即使減少了緩存,如果隨著時間的推移,大部分已安裝的內存都被佔用,內核也會更早地開始機會性交換,這樣CPU(壓縮)和交換I/O 就不會等到最後一刻,並在出現問題時立即使用所有資源。已經太晚了。 ZRAM 使用少量 CPU 進行壓縮,但在大多數記憶體量較小的系統上,它對效能的影響比沒有 ZRAM 的交換要小得多。

總之

我們再看一下結果:

pi@raspberrypi:~ $ free -h
total used free shared buff/cache available
Mem: 926Mi 471Mi 68Mi 168Mi 385Mi 232Mi
Swap: 1.2Gi 258Mi 999Mi

pi@raspberrypi:~ $ sudo cat /proc/swaps 
Filename Type Size Used Priority
/var/swap file 102396 0 -2
/dev/zram0 partition 1185368 264448 5

ZRAM 中的 264448 幾乎是 XNUMX GB 的未壓縮資料。 所有內容都進入 ZRAM,沒有任何內容進入速度慢得多的頁面檔案。 親自嘗試這些設置,它們適用於所有 Raspberry Pi 型號。 我無法使用、凍結的系統變成了一個功能齊全且穩定的系統。

在不久的將來,我希望繼續更新這篇文章,並提供一些在安裝 ZRAM 之前和之後測試系統的結果。 現在我只是沒有時間做這件事。 同時,請隨意運行您自己的測試並在評論中告訴我。 Raspberry Pi 4 是具有這些設定的野獸。 享受!

關於這個問題:

來源: www.habr.com

添加評論