Mac OS X RAM Disk(內存盤) Shell

本文提供改進版的Mac OS X RAM Disk(內存盤)創建程序和實用說明。

顧慮

Mac迅雷下載時IOPS太高,可能是沒使用緩存,這導致磁盤吱吱地響,因此擔心磁盤很快報廢,而不能安心下載。作者已多次向其開發者提議,但至今未收到答覆。

好在本機的內存空間寬裕,突然想到內存盤這一概念。

探索

試用了TmpDisk一段時間,效果還行。但細心的同學會發現:在活動監視器/磁盤頁中,進程TmpDisk的顯示的寫入數據量爲實際內容寫入數據量的兩倍以上。比如:以10M網速全速下載,預計連續寫入1MiB/s~1.25MiB/s,但TmpDisk的連續寫入卻達到3MiB/s~4MiB/s。

後來參考了Eyon的文章【在Mac OS X中創建RamDisk用作緩存目錄】[1],提取了文章中方法二所介紹的Shell程序,並在其基礎上持續改進得出以下Shell實用程序。現分享之:

分享

1. 編碼

編寫以下代碼

#!/bin/sh

# usage:  $ramdisk.sh [capacity=4] [label=RamDisk]

# default capacity=4(gb)
capacity=4
if [ "$1" != "" ]; then
	capacity=$1
fi

# default label="RamDisk"
label="RamDisk"
if [ "$2" != "" ]; then
	label="$2"
fi

# echo "capacity=$capacity\nlabel=$label"

# 1(capacity)=2097152(ram)
ram=$(($capacity*2097152))

if ! test -e "/Volumes/$label" ; then
    diskutil erasevolume HFS+ "$label" `hdiutil attach -nomount ram://$ram`
fi

2. 安裝

將文件保存到/usr/local/bin/ramdisk.sh,並啓用執行權限

$chmod 755 /usr/local/bin/ramdisk.sh

3. 使用

默認創建4GB,卷標爲RamDisk的內存盤

$ramdisk.sh

創建8GB,卷標爲TmpDisk的內存盤

$ramdisk.sh 8 TmpDisk

4. 自動化

若需在系統登陸後自動創建內存盤,可執行以下步驟實現:
a. 根據物理內存將內存盤默認容量修改成合適的數字
b. 打開系統偏好設置,選擇用戶與羣組,當前用戶,登錄項。在列表中添加前面創建的ramdisk.sh Shell程序

參考

[1] - 在 Mac OS X 中創建 RamDisk 用作緩存目錄

發佈了45 篇原創文章 · 獲贊 21 · 訪問量 21萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章