読み方 : ズィーラム / ゼットラム

zram

概要

zramとは、Linuxカーネルの機能の一つで、メモリの一部を圧縮した仮想的なブロックデバイスとして利用し、スワップ領域キャッシュ領域に充てるもの。低速なストレージ装置へのアクセスを避け、メモリ上で圧縮・展開を行うことで、限られたメモリ容量を実質的に増やし、システム全体の処理速度低下を抑える。
zramのイメージ画像

通常、物理メモリが不足すると、使用頻度の低いデータハードディスクSSDスワップ領域へ退避される。しかしストレージへの読み書きはメモリに比べて大幅に低速であり、頻繁なスワップは処理速度の低下を招く。zramはこの退避先をメモリ内部の圧縮領域に置き換えることで、低速なストレージへのアクセスを避ける。

データ圧縮と展開にはCPUの処理能力を使うが、多くの環境ではストレージアクセスより短時間で完了するため、全体としての応答性は向上しやすい。圧縮アルゴリズムには「LZ4」や「Zstandard」(zstd)などが用いられ、圧縮率と処理速度のバランスに応じて選択できる。

zramはUbuntuFedoraなどの主要なLinuxディストリビューション、およびLinuxから派生したAndroid OSやChrome OSなどで採用されている。搭載メモリが限られるスマートフォンでは、バックグラウンドのアプリケーションをメモリ上で効率よく保持する手段として用いられる。組み込み機器やIoT機器でも、コストを抑えつつ動作の安定性を確保する手段として利用される。パソコン向けの軽量なディストリビューションでも、インストール時にzramをスワップとして自動設定する例が増えている。

zramはオペレーティングシステム(OS)内部の機能として透過的に働くため、その上で動くプログラムが直接zramを意識する必要はない。PythonRubyで書かれたアプリケーションを多数起動するWebサーバ環境や、コンテナ仮想化技術で多数のシステムを一台の物理サーバに集約する環境では、メモリ消費量が課題になりやすく、zramによる実質的なメモリ容量の増加が有効に働く。なお、zramに割り当てる容量が大きすぎると却って利用可能なメモリを圧迫する場合がある。搭載メモリ量やCPU性能に応じて、割り当てる容量や圧縮アルゴリズムを調整することが望ましいとされる。

(2026.7.3更新)
 
この記事の著者 : (株)インセプト IT用語辞典 e-Words 編集部
1997年8月より「IT用語辞典 e-Words」を執筆・編集しています。累計公開記事数は1万ページ以上、累計サイト訪問者数は1億人以上です。学術論文や官公庁の資料などへも多数の記事が引用・参照されています。