[Linux] RAMディスクを使ってファイルアクセスを高速化

※当サイトは広告収入で運営されているため広告が表示される場合があります。

まえがき

補助記憶装置(ストレージ)は SSD が普及したことによりストレージの読み書き速度は劇的に改善されましたが、まだまだメインメモリ(DRAM)に比べて遅く、多くのシステムでボトルネックとなっています。

そこで DRAM上に仮想のディスク(RAMディスク)を作り、その中で作業すると非常に快適になります。たとえばウェブブラウザが普段ストレージ上に保存しているキャッシュファイルを RAMディスク 内に移動することでウェブブラウジングの高速化を期待できます。動画や画像ファイルを RAMディスク上で編集することでシームレスに作業することもできます。

さらに PCの電源か切れるとキャッシュファイルは消滅するので、保存しておく必要のない一時データを扱う上でもプライバシー上好ましいと思われます。

今回は tmpfs を用いて RAM ディスクを作成します。tmpfs は一時的にファイルを保存しておくスペースを作成できるファイルシステムで主に物理メモリ上に領域が確保する目的で使われています。

tmpfs を利用するには systemdfstab にマウントポイントを記述する2つの方法があります。

各マウントポイントのファイルシステムを確認する

df コマンドで tmpfs ファイルシステムを利用しているマウントポイントの確認を行います。

# df -h | grep tmpfs
ファイルシス   サイズ  使用  残り 使用% マウント位置
devtmpfs         4.0M     0  4.0M    0% /dev
tmpfs             16G  424M   16G    3% /dev/shm
tmpfs            6.3G  9.6M  6.3G    1% /run
tmpfs             16G  109M   16G    1% /tmp
tmpfs            3.2G  148K  3.2G    1% /run/user/1000

/dev/shm/tmp が大量の容量を予約確保していることがわかります。

昨今はこれらのマウントポイントは systemd で管理されているので /etc/fstab に記述されていません。

systemd

systemd を採用しているディストリビューションは最初から /tmp 、いわゆる一時期ファイルを保管するディレクトリが tmpfs としてマウントされていることがおおいです。これをそのまま活用するのが一番楽です。

また、systemd によるマウントを解除するには以下のコマンドを使います。

# systemctl mask tmp.mount

fstab

/etc/fstabtmpfs コマンドを利用して記述することで RAMディスクを簡単に作成することができます。

$ sudo nano /etc/fstab

/ramdisk というRAMディスクを tmpfs ファイルシステムでシステムの起動時にマウントするように設定します。

tmpfs  /ramdisk  tmpfs noatime,nodev,nosuid,size=2G  0  0

[マウントポイント] [ディレクトリ] [タイプ] [オプション] [Dump ユーティリティの有無] [fsckファイルシステムチェックの優先順位] の順で記述します。

size= の後に割り当てる容量を記述します。 メガバイトには M、ギガバイトには G を後述します。上記の場合、メモリ容量のうち2 GBを RAM ディスクに割り当てています。割当容量が少ないと、ブラウザがクラッシュしたり、極端に動画が重くなるので注意しましよう。

おわり

コメント

タイトルとURLをコピーしました