Raspberry Pi のパフォーマンス: ZRAM の追加とカーネル パラメーターの変更

数週間前に投稿しました パインブック プロのレビュー。 Raspberry Pi 4 も ARM ベースであるため、前の記事で説明した最適化の一部は Raspberry Pi XNUMX に非常に適しています。 これらのトリックを共有し、同じパフォーマンスの向上を体験できるかどうかを確認したいと思います。

Raspberry Pi をデバイスにインストールした後、 自宅サーバールーム RAM が不足すると、応答が非常に鈍くなり、さらにはフリーズすることに気づきました。 この問題を解決するために、ZRAM を追加し、カーネル パラメーターにいくつかの変更を加えました。

Raspberry Pi で ZRAM をアクティブ化する

Raspberry Pi のパフォーマンス: ZRAM の追加とカーネル パラメーターの変更

ズラム /dev/zram0 (または 1、2、3 など) という名前のブロック ストレージを RAM に作成します。 そこに書き込まれたページは圧縮されてメモリに保存されます。 これにより、非常に高速な I/O が可能になり、圧縮によってメモリも解放されます。

Raspberry Pi 4 には、1、2、4、または 8 GB の RAM が搭載されています。 今回は1GBモデルを使用しますので、お使いのモデルに合わせて手順を調整してください。 1 GB ZRAM を使用すると、デフォルトのスワップ ファイル (遅い!) の使用頻度が低くなります。 このスクリプトを使用しました zram-swap インストールと自動構成用。

手順は、上にリンクされたリポジトリに記載されています。 インストール:

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% 制限に達するとすぐに記録を開始しますが、システムは、dirty_ratio が 50% に達するまで同期 I/O を強制しません。

これら XNUMX 行 (ZRAM で使用する場合) は、次の場合にパフォーマンスの向上に役立ちます。 必然的に 私と同じように、RAMが不足するとスワップへの移行が始まります。 この事実を理解し、また ZRAM のメモリが XNUMX 倍圧縮されることを考慮すると、このスワップを事前に開始することをお勧めします。

キャッシュに圧力をかけると、基本的にカーネルに「キャッシュに使用する余分なメモリがないので、できるだけ早く削除して、最も頻繁に使用される/重要なメモリのみを保存してください」と伝えることになるため、役に立ちます。データ。"

キャッシュを減らしても、時間の経過とともにインストールされているメモリの大部分が占有されると、カーネルはずっと早く日和見スワップを開始するため、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 ギガバイトの非圧縮データに相当します。 すべてが ZRAM に送られ、はるかに遅いページ ファイルには何も送られませんでした。 これらの設定はすべての Raspberry Pi モデルで機能するので、自分で試してみてください。 使い物にならなくなったフリーズシステムが、機能的で安定したシステムに変わりました。

近い将来、ZRAM をインストールする前と後のシステムのテスト結果を含めて、この記事を継続して更新したいと考えています。 今はそんなことをする時間がありません。 それまでの間、ご自由に独自のテストを実行して、コメントでお知らせください。 Raspberry Pi 4 は、これらの設定を備えた猛獣です。 楽しむ!

件名に:

出所: habr.com

コメントを追加します