前回、debian bullseye系列のRaspberry Pi OSにて、zramctlコマンドでzramを作成しました。
では、Red Hat Enterprise Linux 9系列のディストリビューションでzramを使用するには、どの方法が最良でしょうか。
Fedoraでは、zram-generatorによるswap作成が、既に既定の動作になっています。
Raspberry Pi 4にRHEL 9系列のRocky Linux 9をインストールした場合の、zram作成手順を記録させて頂こうと思います。
目次
Rocky Linux 9のzram作成手順の覚書
Rocky Linuxは、CentOSと同様に、Red Hat Enterprise Linuxと互換性を持つディストリビューションの1つです。
RHEL 9系列は、同じ手順でzramを作成できる可能性が御座います。(未検証
Rocky Linuxインストール直後のswapの状態
Rocky Linuxインストール直後は、500MBのスワップパーティションが作成されています。
/dev/sda2パーティションのようです。ファイルシステムのため、swapが発生すると、microSDカードやSSDの寿命に影響します。
その改善のため、zramをインストールしたいと思います。
zram-generatorのインストール
RHEL系では、zramctlコマンドを使用するよりも、zram-generatorを使用したほうが楽な感じがします。なんとなく(意味不明
sudo dnf install -y zram-generator
zram-generatorインストール後再起動するとzram有効に
再起動して状態を確かめてみました。
sudo systemctl reboot
再起動が完了すると、3.7GBのzram0デバイスが作成されています。
またswapとして登録されており、優先度も100に設定されています。
つまり。
zramを使用したい場合は、zram-generatorをインストールして、再起動ればOKということになります。
zram-generatorの設定の詳細
zram0を作成しているユニットは、「systemd-zram-setup@zram0.service」のようです。
そしてその設定ファイルは「/lib/systemd/zram-generator.conf」になります。
設定は2行。
1行目のzram-fractionは、使用可能なRAM領域に対する、スケーリングファクター(割合)設定になります。2行目のmax-zram-sizeは、最大容量の制限値でメガバイト単位になります。
既定の設定では、zram0は最大8GiBに制限され、かつメインメモリーの1.0倍までという設定になります。
メモリー容量4GBのRaspberry Pi 4を使用していますが、その場合は最大4GiBのzramが作成される、という設定から、3.7GBの/dev/zram0が作成されたのだと思います。
zram-generatorの設定調整
sudo vi /lib/systemd/zram-generator.conf
zramの設定を細かく調整したい場合は、/lib/systemd/zram-generator.confファイルを編集します。
設定可能な内容は、次のマニュアルに記載があるようです。
man zram-generator.conf
気になるのはこのあたりです。既定の設定では、メモリー容量8GBまではリニア(線形)にzramサイズが確保されますが、8GBを超えても4GBまで、というグラフが描かれています。
manページにグラフというのは、初めて見ましたが・・・・何か意味深な感じがします。
個人的には、既定の設定でzramを使用させて頂くのが無難な気がします。
RHEL9系列でzramを使用したい場合。
zram-generatorをインストールして、再起動するだけで、zramを使用可能な状態になりました。
以前の記事に記載させて頂いた通り。
zramを作成する理由は、ストレージへの書き込み回数を減らすためです。
サーバとしてRaspberry Piを使用する場合や、カーネルやアプリをコンパイルする場合など、swapが発生するレベルまでプロセスを作る場合、メインメモリーをファイルのキャッシュとして使用するよりも、swapとして使用したほうが、microSDカードやSSDの寿命を伸ばす効果があるためです。
そもそも、RHEL9を使用する状況では、サーバとしてマシンを使用する場合が多いと思います。よって、個人的には、RHEL9を使用する場合、zramの導入は必須のような感じがします。
繰り返しになりますが。microSDカードやSSDの寿命が気になる場合は、メモリーをキャッシュとして使用するよりも、zramとして使用することを検討するのも悪く無いと思います。