ZRAM

提供: MonoBook
2022年5月26日 (木) 04:35時点におけるAdministrator (トーク | 投稿記録)による版 (→‎主な使い方)
(差分) ← 古い版 | 最新版 (差分) | 新しい版 → (差分)
ナビゲーションに移動 検索に移動

zRAM(読み:ぜっとらむ)とは、データを読み書きすると全自動で圧縮伸長が行われるRAMディスクのことである。

主な用途[編集 | ソースを編集]

高速化[編集 | ソースを編集]

CPUの負荷は低く」「メモリ負荷は高い」環境において、データを圧縮転送することでメモリのバス帯域を節約でき、結果として高速化が期待できる。この発想自体はPS5ストレージが採用した「Kraken」と同様のものである。

なお、「CPUがしょぼい」「メモリ負荷も低い」という状況では当然ながら遅くなる。

大容量[編集 | ソースを編集]

圧縮するのでそこそこな量のデータを格納できる。 「CPUがしょぼい」「メモリ負荷も低い」という状況でも、この「大容量」という恩恵だけは受けることができる。

対応状況[編集 | ソースを編集]

Linux[編集 | ソースを編集]

Linuxでは、2014年3月30日にリリースされたLinuxカーネル 3.14から採用されている。

AndroidおよびChrome OS[編集 | ソースを編集]

Android (4.4以降)やChrome OS (全バージョン)でもzRAMを利用できる。

ただしzRAM関連の設定はスマホタブレットの製造メーカーしか設定できないのが一般的である。なお、rootを取れば細かく設定できる。

スマホタブレットではフラッシュメモリ(主に安物のeMMC)の耐久性の問題からパソコンで一般的な「ストレージに退避するスワップメモリ」が無効化されており、その代わりに「zRAMに退避させるスワップメモリ」を採用しているものが多い。

なお、zRAMの割当容量(メインメモリとzRAMの比率)は前述のようにメーカーに依存する。zRAMの割当容量が「ゼロ」となっているスマホも多い。

主な使い方[編集 | ソースを編集]

zramデバイス(/dev/zram{n})を生成する。

$ modprobe zram num_devices=1

zramデバイスにメモリ16GBを割り当てる。

$ zramctl /dev/zram0 --size 16G

zramデバイスをフォーマットする。ファイルシステムext4ではなくxfsなどでもよい。何が良いかは知らん。

$ mkfs.ext4 /dev/zram0 

zramデバイスをマウントする。

mkdir -p /mnt/ramdisk
mount /dev/zram0 /mnt/ramdisk/

zramデバイスをアンマウントする。

umount /mnt/ramdisk

zramデバイスを開放する。

zramctl -r /dev/zram0