(O+P)ut

アウトプット



(O+P)ut

エンジニアのアウトプット

【Linux】tmpfsを指定したRAMディスクの作成/削除手順

スポンサーリンク

はじめに

データをディスクではなくメモリ上に配置することで高速な読み込みを可能にする「RAMディスク」をRHEL環境で作成及び削除する手順を説明します。

環境情報
  • Red Hat EnterPrise Linux Server 7.6

メモリ容量の事前確認

同環境では meminfoにてー全体のメモリ容量及び空きメモリ容量が確認できます。

# cat /proc/meminfo  | head -n 3
MemTotal:       12304096 kB
MemFree:         6937368 kB
MemAvailable:   11579856 kB

MemTotal以外の部分の数値はリアルタイムで変動します。

# cat /proc/meminfo  | head -n 3
MemTotal:       12304096 kB
MemFree:         6937220 kB
MemAvailable:   11579708 kB

同情報でメモリの空き具合を確認し、影響ない範囲で割り当てます。

RAMディスクを作成する

以下コマンドで100MBのRAMディスクが作成できます。

# mount -t tmpfs -o size=100M tmpfs /tmp/hoge

ただし、事前に同ディレクトリがない場合は以下エラーとなります。

mount: mount point /tmp/hoge does not exist

また、-tの後に指定するのはタイプなので打ち間違えをするとエラーとなりますが

mount: unknown filesystem type 'tmpts'

後者はファイルシステム名なので任意につけることも可能です。

# mount -t tmpfs -o size=100M hoge /tmp/hoge

tmpfsというファイルシステム名で生成できれば以下のように確認できます。

# df
Filesystem            1K-blocks    Used Available Use% Mounted on
...
tmpfs                     102400       0    102400   0% /var/hoge

同情報は以下のファイルの中身を読みだしているので実体は下記のように管理されています。

# cat /etc/mtab
...
tmpfs /var/hoge tmpfs rw,relatime,size=102400k 0 0

RAMディスクを削除する

fstabに記載がない場合はリブート時に自動的に削除されます。
リブート時を待たずに明示的に削除する場合は以下で削除可能です。

# umount /var/hoge

同じく/etc/mtabからは削除されています。
削除時にファイルがあってもumountで削除できますが、再度mountしてもファイルはなくなっている点はご注意ください。

また、再起動時に自動的に同ファイルシステムを作成したい場合はfstabに下記を追記します。

tmpfs /var/hoge tmpfs defaults,size=102400k 0 0

この最後の0はバックアップ対象に含めない&起動時のfsckのチェック対象から外すという意味となります。ただし中のファイル群は削除されてしまうことには変わりありません。

終わりに

RAMディスクの作成手順でした。プログラムの高速化を行う上で、同ファイルシステムを利用することで達成させる手法もあるので覚えておくと役立つと思います。