之前本站报道过在Mac OS X 下使用Intel X25-M G2 80G SSD做的相关系统优化,今天我们只讨论系统要做哪些优化命令。SSD硬盘以其优异的性能,已经在不少型号的Mac笔记本上得到了应用,本文以Snow Leopard10.6为例,详细说明了在苹果系统中使用SSD时的优化。
禁用冬眠 (hibernate) 模式以节省空间
由于SSD硬盘价格较高,主流的SSD容量都较少,而hibernate模式几乎不会用到,禁用这种模式能节约大致2G的空间。Hibernate模式用于在 Mac 耗尽电池时,自动进入“冬眠”模式,并将内存中的所有内容写入磁盘,下次唤醒后从这些内容恢复状态。欢迎查看。
禁用Hibernate的相关命令如下:
- pmset -g | grep hibernate #查看当前的hibernate模式
- ls -lh /var/vm/sleepimage #查看sleepimage文件大小
- sudo pmset -a hibernatemode 0 #禁用hibernate
- sudo rm /var/vm/sleepimage #删除sleepimage文件
今后如果需要打开hibernate模式,再将该值设为默认的就可以了:
- sudo pmset -a hibernatemode 3 #设置hibernatemode为默认值3
禁用文件系统的最后访问时间属性
该属性在平时使用的过程中,几乎不会用到,而打开“最后访问时间”属性会导致每一次访问一个文件时,有写操作产生,所以,关闭该属性可减少大量不必要的写操作。
具体方法为,在 /Library/LaunchDaemons 目录中创建名为com.nullvision.noatime.plist 的文件,内容为:
- <?xml version="1.0" encoding="UTF-8"?>
- <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN"
- "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
- <plist version="1.0">
- <dict>
- <key>Label</key>
- <string>com.nullvision.noatime</string>
- <key>ProgramArguments</key>
- <array>
- <string>mount</string>
- <string>-vuwo</string>
- <string>noatime</string>
- <string>/</string>
- </array>
- <key>RunAtLoad</key>
- <true/>
- </dict>
- </plist>
这样,重启系统后,将以 noatime 方法挂载硬盘,不会再写入最后访问时间属性。
重启用,用 mount | grep " / " 可看到挂载的硬盘里多了一个noatime属性。
- $ mount | grep " / "
- /dev/disk0s2 on / (hfs, local, journaled, noatime)
使用内存来写入临时文件
通过使用内存来代替系统原有的tmp目录,这样,大量写入tmp的临时文件就直接写在内存里,减少直接对磁盘的操作。
在 /var/root 目录中创建名为 ramfs.sh 的文件,内容为:
- #!/bin/bash
- ramfs_size_mb=256
- mount_point=/private/tmp
- ramfs_size_sectors=$((${ramfs_size_mb}*1024*1024/512))
- ramdisk_dev=`hdid -nomount ram://${ramfs_size_sectors}`
- newfs_hfs -v 'Volatile HD' ${ramdisk_dev}
- mkdir -p ${mount_point}
- mount -o noatime -t hfs ${ramdisk_dev} ${mount_point}
- chown root:wheel ${mount_point}
- chmod 1777 ${mount_point}
ramfs_size_mb 为使用内存的大小,这里为256M,可根据自身情况进行修改。使用内存模拟硬盘的目录为 /private/tmp。
在 /Library/LaunchDaemons 目录中创建名为 com.nullvision.ramfs.plist 的文件,内容为:
- <?xml version="1.0" encoding="UTF-8"?>
- <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN"
- "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
- <plist version="1.0">
- <dict>
- <key>Label</key>
- <string>com.nullvision.ramfs</string>
- <key>ProgramArguments</key>
- <array>
- <string>/var/root/ramfs.sh</string>
- </array>
- <key>RunAtLoad</key>
- <true/>
- </dict>
- </plist>
这样,系统启动时,会自动运行 /var/root/ramfs.sh 这个脚本,来帮助我们在内存空间中划分出256M模拟 /private/tmp 目录。这样,系统运行时产生的一些临时文件就直接写入内存中了,减少了写磁盘的次数。
同时,可将一些在运行时会产生大量临时文件的目录软链接到 /private/tmp 下,只要满足:1)这些临时文件不会太大(我们只使用256M内存);2)不是特别重要的数据,即使丢失也无妨。
关闭Safari的Web Pageview
如果你像我一个,不使用Safari的Top Sites功能,完全可将该功能关闭掉。该功能会导致访问网站时,生成大量图片文件。
- rm ~/Library/Caches/com.apple.Safari/Webpage\ Previews/* #删除所有预览文件
- chmod 500 ~/Library/Caches/com.apple.Safari/Webpage\ Previews/ #设置该目录为只读
或者用下面命令禁止Safari生成预览文件:
- defaults write com.apple.Safari DebugSnapshotsUpdatePolicy -int 2
关闭Spotlight索引
同样的,如果你不怎么使用spotlight,可将其关闭掉:
- sudo mdutil -i off # 关闭spotlight索引
- sudo mdutil -E #清除spotlight索引
在需要spotlight功能时,可再将其还原:
- sudo mdutil -i on #打开spotlight索引