今日も元気にテクニカル

技術情報書きたいけど本ブログに書きたくないからこんな名前になりました。

tmpfsってなんですか?

デバイスの話に関連して、tmpfsという面白い機能を勉強。

tmpfsというのは物理メモリ上に一定量のブロックファイルを作成し(デフォルトで物理メモリの半分)、それを任意のディレクトリにマウントしてRAMディスクとして使用できる機能である。

例えば、メモリを3GB積んでるが普段はそんなに使わない。じゃあ、2GBをtmpfsとして/home/user01/chash/とかにマウントして、そこにキャッシュファイルや作業用ファイルなどを置こう。PCを落とすとデータが消えるので必要なら物理ディスク上にコピーしよう、って感じ。

tmpfsが/dev/shmをマウントしている件 - サーバー技術メモ
RAMディスクを作成しHDDへのアクセスを抑制する - ちりあくた

tmpfsってのはファイル名やディレクトリ名ではなくNTFSやFAT32のようなファイルシステム=「機能」として認識するのが正しい。

デフォルト設定

上記で書いたとおり、デフォルトでも物理メモリの半分は/dev/shmにtmpfsとして割り振られる。まぁ/dev以下にわざわざ作業ファイルを保管するのも不自然なので、/dev/shmへのマウントを解除して/tmpやら/home/user01/tmpやら/var/logやらにマウントし直す方が分かりやすいと思われる。それには/etc/fstabを編集し、PC起動時に自動的にtmpfsが働くようにしてやればよい。

tmpfs使うと物理メモリ削るの?

物理メモリの余りを利用して高速のRAMディスクを作る機能なので削ります。ただし削られるのはtmpfsとしてマウントされたディレクトリにファイルを置いたタイミングなので、マウントするだけならタダ。

tmpfs は本当に容量が動的なのか - naoyaのはてなダイアリー

CentOSUbuntuの設定の違い

CentOSは/etc/fstabにtmpfsをマウントする一文が書かれ、/etc/default/tmpfsに書かれている分だけ/dev/shmにマウントするみたいです。まぁデフォルト設定消さなくてもそこにファイルを置かない限りマウントしてないも同然なので気にしなくても問題ないと思いますが。