ZONDEEL BLOG

技術と生活のログ

Ubuntu で Ramdisk を作成し、キャッシュをそこに移動する。

Ubuntuの場合それほどメモリを消費しないので
余剰分のメモリで Ramdisk を作成してキャッシュファイルをそこへ移動する。
(SSDへの書き込みを減らす意味も含めている。)

Ramdiskという性質上、その場合のキャッシュファイルについては
再起動等で消去されてしまうことになる。

また、環境としては Ubuntu 14.10 64bit(β) を使用しているが
あまり関与しない情報だと思う。

Ramdisk の作成

マウント先を作成する。

sudo mkdir /ramdisk
sudo chmod 777 /ramdisk

fstab を編集し、1.5Gの容量の Ramdisk を作成する。

sudo vi /etc/fstab

以下を最終行に追記する。

16.04 等 14.04 以降の場合
tmpfs     /ramdisk tmpfs rw,size=2G,x-gvfs-show     0 0
14.04 の場合
/dev/shm /ramdisk tmpfs size=1536m 0 0


使用するファイルシステムは tmpfs と ramfs があるようだが、
tmpfs は確保するメモリ容量を可変で使ってくれるらしい。

■参考
RAM ディスク - ArchWiki
tmpfs は本当に容量が動的なのか - naoyaのはてなダイアリー

マウントする。
(fstabにある設定のものを全てマウント)

sudo mount -a

正しくマウントされているかを確認する。
以下のように設定通りのものが表示されれば大丈夫。

df -h | grep ramdisk
/dev/shm        1.5G   32M  1.5G   3% /ramdisk

キャッシュファイルを Ramdisk へ移動する

今回の対象は以下の2ディレクトリ。
乱暴だが一旦削除してしまう。

rm -rf ~/.cache
rm -rf /tmp

削除したディレクトリの代わりに
Ramdisk へのシンボリックリンクを作成する。

ln -s /ramdisk ~/.cache
sudo ln -s /ramdisk /tmp

Ramdisk とは関係ない余談

.xsession-errors が HOME 直下に日々書かれるのが気になる。
出力先を変える方法が分からなかったので、 /dev/null へリンクする。

以下の内容を .bashrc へ追記する。

# .xsession-errors can grow huge... remove it
if [ ! -h $HOME/.xsession-errors ]
then
    /bin/rm $HOME/.xsession-errors
    ln -s /dev/null $HOME/.xsession-errors
fi
 
if [ ! -h $HOME/.xsession-errors.old ]
then
    /bin/rm $HOME/.xsession-errors.old
    ln -s /dev/null $HOME/.xsession-errors.old
fi

■参考
.xsession-errors can grow HUGE | The Ubuntu Incident