14
13

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

MacOSX 簡単にブラウザのキャッシュをRamDiskにあてる

Last updated at Posted at 2019-11-14

以前、TmpDiskを使ったRamDiskの適用方法を投稿したのですが、
最近になって
・Terminal のコマンドから一発でシンプルに作成可能な事
・AutoMatorなんて使わなくても簡単に起動登録できる事
がわかりました。

※実行は自己責任にてお願いします
※2021/4/13 APFSについての記述とベンチマーク例を追加しました

目的

ブラウザのキャッシュをRamDiskにあてることで、
SSDへのアクセスが減り、
以下のことが期待できます。

  • SSDの寿命が伸びる
  • 動作環境への負荷が減る
  • GoogleChromeのキャッシュを割り当てたら、動作が快適に感じるかも?

とはいえ、どちらも体感は変わらないです。

システムのメモリをディスクとして割り当てる為、
メモリに余裕のある環境が対象となります。

測定

一例ですが、
単純な数値として、AmorphousDiskMark 3.1 で SSD と RamDisk を
それぞれ測定すると、こんな感じになります。

※ MacMini Late2020
※ 左から、SSD、RamDisk(HFS+)、RamDisk(APFS)
Screen Shot 2021-04-13 at 2.38.38.png
※ QD = QueueDepth (一度に発行するコマンド数)

RamDisk を作成する

これは、それぞれ一行で実現可能でした。
参考サイト

# HFS+ の場合
diskutil erasevolume HFS+ ${DISK_NAME} `hdiutil attach -nomount ram://${DISK_SIZE}`
# APFS の場合
diskutil partitionDisk `hdiutil attach -nomount ram://${DISK_SIZE}` 1 apfs ${DISK_NAME} ${DISK_SIZE}

DISK_NAMERAMDisk とかで、わかりやすくて良いと思いますが、
DISK_SIZE参考サイトにあるように、以下のようになります。

|DISK_SIZE|数値|
|:-:|:-:|:-:|
|512MB|1048576|
|1GB|2097152|
|2GB|4194304|

# 2GBのRAMDiskを作成する (HFS+)
diskutil erasevolume HFS+ RAMDisk `hdiutil attach -nomount ram://4194304`

# 2GBのRAMDiskを作成する (APFS)
diskutil partitionDisk `hdiutil attach -nomount ram://4194304` 1 apfs RAMDisk 4194304

起動時設定の登録

再起動後も、自動でRAMDiskが有効になるようにします。

1.シェルスクリプトの作成

以下のようなスクリプトを作成します。
この例では、GoogleChromeのキャッシュをRAMDiskに割り当てています。
*ブラウザのキャッシュフォルダの場所は、バージョンによって変わる可能性があります

setup-mac-ramdisk.command
DISK_SIZE=4194304
DISK_NAME=RAMDisk

# create and mount RAMDisk
# HFS+
diskutil erasevolume HFS+ ${DISK_NAME} `hdiutil attach -nomount ram://${DISK_SIZE}`
# APFS
# diskutil partitionDisk `hdiutil attach -nomount ram://${DISK_SIZE}` 1 apfs ${DISK_NAME} ${DISK_SIZE}

# create links to RAMDisk
function symbolic_link(){
  rm -rf "$1"
  rm -rf "$2"
  mkdir -p "$2"
  ln -s "$2" "$1"
}

# Chrome_Cache
SRC=${HOME}/Library/Caches/Google/Chrome
DST=/Volumes/${DISK_NAME}/Caches/Chrome
symbolic_link "${SRC}" "${DST}"

2.ログイン項目に登録

作成したスクリプトには、おそらく権限を与えておく必要があります。
chmod 744 setup-mac-ramdisk.command

System Preferences より、
ユーザーとグループ を選択。

ログイン項目 タブの + ボタンを押して

  1. で作成したスクリプトファイル (ここではsetup-mac-ramdisk.command) を選択します。

RamDisk Command.png

そうすると、再起動後は下のようなターミナルが起動されるようになります。
起動時.png

大体すぐに終わる印象ですが、
[プロセスが完了しました] と表示されたら、
RAMDiskの準備は完了しているので、そのターミナルは閉じて大丈夫です。

RAMDisk に割り当てる

対象が GoogleChrome くらいしかなくて、ちょっと残念な気もするので、
スクリーンショットの保存先でも変えてみます。

# スクリーンショットの保存先を、RAMDiskに割り当てる
defaults write com.apple.screencapture location /Volumes/RAMDisk;killall SystemUIServer

このコマンドをTerminalで一度実行すれば、適用されます。

14
13
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
14
13

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?