本文提供改進版的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程序