😃
MacでRamディスクを作成する
SSDは読み書きによって化学的に劣化します。
序文
私の所有する、MacBook Pro(2012年の1st Ratina)のSSDが動作しなくなり、修理に出したところ、5万円〜9万円の修理費用がかかると言われました。おそらくSSDは基盤にハンダ付けされており、SSDだけを交換することはできず、基盤(マザーボード)交換になるからでしょう。(私は幸い無料で修理をして頂きました[1])
私の場合は、git
で branch
の切り替えや rebase
を頻繁に行っていたので、SSD の書き込み上限に達したんだと思います。
Why RAM Disk???
SSDはファイルの読み書きによって劣化するので、頻繁に読み書きが発生するファイルをRAMディスク上においてしまえばいいのです。
作業
以下のスクリプトは、RAM Diskを作成し、/tmp
にマウントしています。
/tmp
に、Apacheのログを保存するディレクトリを作成し、Apache側の設定で、/tmp/log/apahe2
にログを保存するように設定します。
私は他にも、PHPのセッションファイルの保存先にも利用しています。[2]
#!/usr/bin/env bash
# 512MB 1048576
# 1GB 2097152
# 2GB 4194304
NUMSECTORS=${1:-2097152}
MOUNTPOINT=/tmp
VOLUMENAME=TMP
# RAM Disk
RAMDISK=`hdiutil attach -nomount ram://$NUMSECTORS`
newfs_hfs -s -v $VOLUMENAME $RAMDISK
mount -t hfs $RAMDISK $MOUNTPOINT
# Make directory
mkdir -p "${MOUNTPOINT}/caches/"
mkdir -p "${MOUNTPOINT}/log/apache2/"
newfs_hfs
のオプションは、-s
がケースセンシティブ(大文字小文字を区別する)、-v
がボリューム名になります。
ファイルには実行権限が必要です。以下のように実行権限を与えます。
chmod +x ./ramdisk.sh
/tmp
にマウントするにはroot権限が必要です。sudo
で実行します。
sudo ./ramdisk.sh
PHPのセッションファイルの設定方法
Gitは重い
GitのリポジトリをRamDisk上に置くと、ログの一覧やブランチの切り替え、リベースなどなど、めちゃくちゃ速くなります。Gitって、かなり重い作業をしているんだと思う。
Discussion