Linuxを長く使っている方なら、スワップについてよくご存知でしょう。Linuxを比較的初めて使う方は、スワップパーティションについて以下の点を理解しておく必要があります。スワップパーティションは、システムのRAMが不足したときに使用される専用パーティションです。RAMが不足すると、非アクティブなページがRAMからスワップパーティションに移動されます。
スワップの問題は、通常、システムにインストールされているRAMよりも低速なドライブ上に配置されることです。もちろん、これはLinuxなので、必ず回避策があります。その方法の一つがzRAMモジュールです。これは、RAMの一部をスワップ領域として割り当てるものです。
しかし、スワップの目的はRAMが不足している時ではないでしょうか?そうであれば、この鶏が先か卵が先かという状況はどのように機能するのでしょうか?
シンプルです。zRAMパーティションに保存されるデータは圧縮されるため、より多くのデータをRAMに保存できます。この圧縮にはCPU時間のわずかな割合が消費されますが、パフォーマンスのトレードオフは多くの場合、それだけの価値があります。
このモジュールが使いたいと思ったら、どうすれば使えるようになるでしょうか?その方法をお見せします。
参照: フラッシュストレージ: IT プロフェッショナル向けガイド (TechRepublic Premium)
必要なもの
zRAM はすべての Linux ディストリビューションで使用できるため、必要なものは次のとおりです。
- 実行中のLinuxディストリビューション
- sudo権限を持つユーザー
準備ができたら、早速実行してみましょう。Ubuntu Server 18.04 でデモを行います。別のディストリビューションをお使いの場合は、systemd ユニットファイルをお使いのディストリビューションに合わせて修正するだけで済みます。
zRAMを有効にする方法
zRAMモジュールはsystemdによって制御されるため、fstabエントリは必要ありません。また、すべてが既にインストールされているため、いくつかのファイルを作成し、そのうちの1つを修正するだけで済みます。
ターミナル ウィンドウを開き、次のコマンドで新しいファイルを作成します。
sudo nano /etc/modules-load.d/zram.conf
そのファイルに次の単語を追加します:
zram
ファイルを保存して閉じます。
次に、次のコマンドで 2 番目の新しいファイルを作成します。
sudo nano /etc/modprobe.d/zram.conf
そのファイルに次の行を貼り付けます。
options zram num_devices=1
ファイルを保存して閉じます。
次に、zRAMパーティションのサイズを設定する必要があります。次のコマンドで新しいファイルを作成します。
sudo nano /etc/udev/rules.d/99-zram.rules
そのファイルに次の内容を貼り付けます (ディスクサイズ属性をニーズに合わせて変更します)。
KERNEL=="zram0", ATTR{disksize}="512M",TAG+="systemd"
ファイルを保存して閉じます。
従来のスワップを無効にする方法
zRAMを機能させるには、従来のスワップを無効にする必要があります。これはfstabファイル内で処理されます。以下のコマンドでファイルを開きます。
sudo nano /etc/fstab
そのファイルで、 /swap.imgで始まる行をコメントアウトします (先頭に # 文字を追加します) 。
ファイルを保存して閉じます。
systemdユニットファイルの作成方法
zRAMを実行するには、systemdユニットファイルを作成する必要があります。以下のコマンドでこのファイルを作成します。
sudo nano /etc/systemd/system/zram.service
そのファイルに次の内容を貼り付けます。
[Unit]
Description=Swap with zram
After=multi-user.target
[サービス]
タイプ=ワンショット
RemainAfterExit=true
ExecStartPre=/sbin/mkswap /dev/zram0
ExecStart=/sbin/swapon /dev/zram0
ExecStop=/sbin/swapoff /dev/zram0
[インストール]
WantedBy=multi-user.target
ファイルを保存して閉じます。
次のコマンドで新しいユニットを有効にします。
sudo systemctl enable zram
マシンを再起動します。
zRAMが動作しているかどうかを確認する方法
システムが再起動したら、再度ログインします。ターミナル ウィンドウから次のコマンドを発行します。
cat /proc/swaps
/dev/zram0がスワップを処理していることがわかります(図 A )。
図A

おめでとうございます。zRAM が動作するようになりました。アプリケーションやサービスがシステム上のスワップを使い始めると、パフォーマンスの向上が実感できるはずです。
TechRepublic Academy の以下のリソースを活用して Linux エキスパートになりましょう。
Jack Wallen によるビジネス プロフェッショナル向けの最新のテクノロジー アドバイスをすべて知るには、YouTube で TechRepublic の How To Make Tech Work を購読してください。

画像: iStockphoto/kentoh