md スワップデバイスとの大きな違いは、tmpfs では削除されたファイルが即座にメモリに返される事だ。また、再起動すると内容は失われる。そのため、一時ファイルの置場としての利用価値が高い。
カーネルやユーザランドの場合は、オブジェクトファイルを削除せずに、make を行なった方が速い。変更されたところだけ作り直すからだ。しかし ports の場合は、一度きりだ。一度インストールすると、再度作り直して入れ直すことはほとんどない。そして、ports では大量のファイルを展開して、コンパイルをし、インストール後に削除する。
tmpfs は ports の作業領域としてはうってつけだ。
# vi /etc/make.con
WRKDIRPREFIX=/ports/tmp
# grep tmpfs /etc/fstab
tmpfs /ports/tmp/usr tmpfs rw 0 0
として、日常利用している。なお、FreeeBSD 7.0-RELEASE とその RC/BETA 版には tmpfs を umount -f 時に panic するバグがあるので、umonut -t tmpfs
が shutdown の前に欠かせない。
ports+ の実験も兼ねて、ports はほぼ毎日更新しているので、時間の短縮に大きく献身貢献適している。
次回。
セコメントをする