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 用作缓存目录

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。