逛奔的蜗牛

我不聪明,但我会很努力

   ::  :: 新随笔 ::  ::  :: 管理 ::

之前本站报道过在Mac OS X 下使用Intel X25-M G2 80G SSD做的相关系统优化,今天我们只讨论系统要做哪些优化命令。SSD硬盘以其优异的性能,已经在不少型号的Mac笔记本上得到了应用,本文以Snow Leopard10.6为例,详细说明了在苹果系统中使用SSD时的优化。

禁用冬眠 (hibernate) 模式以节省空间

由于SSD硬盘价格较高,主流的SSD容量都较少,而hibernate模式几乎不会用到,禁用这种模式能节约大致2G的空间。Hibernate模式用于在 Mac 耗尽电池时,自动进入“冬眠”模式,并将内存中的所有内容写入磁盘,下次唤醒后从这些内容恢复状态。欢迎查看


禁用Hibernate的相关命令如下:


 

  1. pmset -g | grep hibernate #查看当前的hibernate模式
  2. ls -lh /var/vm/sleepimage #查看sleepimage文件大小
  3. sudo pmset -a hibernatemode 0 #禁用hibernate
  4. sudo rm /var/vm/sleepimage #删除sleepimage文件


今后如果需要打开hibernate模式,再将该值设为默认的就可以了:
 

  1. sudo pmset -a hibernatemode 3 #设置hibernatemode为默认值3


禁用文件系统的最后访问时间属性

该属性在平时使用的过程中,几乎不会用到,而打开“最后访问时间”属性会导致每一次访问一个文件时,有写操作产生,所以,关闭该属性可减少大量不必要的写操作。

具体方法为,在 /Library/LaunchDaemons 目录中创建名为com.nullvision.noatime.plist 的文件,内容为:

 

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" 
  3.         "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
  4. <plist version="1.0">
  5.     <dict>
  6.         <key>Label</key>
  7.         <string>com.nullvision.noatime</string>
  8.         <key>ProgramArguments</key>
  9.         <array>
  10.             <string>mount</string>
  11.             <string>-vuwo</string>
  12.             <string>noatime</string>
  13.             <string>/</string>
  14.         </array>
  15.         <key>RunAtLoad</key>
  16.         <true/>
  17.     </dict>
  18. </plist>


这样,重启系统后,将以 noatime 方法挂载硬盘,不会再写入最后访问时间属性。

重启用,用 mount | grep " / " 可看到挂载的硬盘里多了一个noatime属性。

 

  1. $ mount | grep " / "
  2. /dev/disk0s2 on / (hfs, local, journaled, noatime)


图为优化好的Mac OS X Leopard系统使用界面

使用内存来写入临时文件

通过使用内存来代替系统原有的tmp目录,这样,大量写入tmp的临时文件就直接写在内存里,减少直接对磁盘的操作。

  1. sudo su #进入root帐号操作

在 /var/root 目录中创建名为 ramfs.sh 的文件,内容为:

  1. #!/bin/bash
  2. ramfs_size_mb=256
  3. mount_point=/private/tmp

  4. ramfs_size_sectors=$((${ramfs_size_mb}*1024*1024/512))
  5. ramdisk_dev=`hdid -nomount ram://${ramfs_size_sectors}`
  6. newfs_hfs -v 'Volatile HD' ${ramdisk_dev}
  7. mkdir -p ${mount_point}
  8. mount -o noatime -t hfs ${ramdisk_dev} ${mount_point}
  9. chown root:wheel ${mount_point}
  10. chmod 1777 ${mount_point}


ramfs_size_mb 为使用内存的大小,这里为256M,可根据自身情况进行修改。使用内存模拟硬盘的目录为 /private/tmp。

在 /Library/LaunchDaemons 目录中创建名为 com.nullvision.ramfs.plist 的文件,内容为:

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" 
  3. "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
  4. <plist version="1.0">
  5.     <dict>
  6.         <key>Label</key>
  7.         <string>com.nullvision.ramfs</string>
  8.         <key>ProgramArguments</key>
  9.         <array>
  10.             <string>/var/root/ramfs.sh</string>
  11.         </array>
  12.         <key>RunAtLoad</key>
  13.         <true/>
  14.     </dict>
  15. </plist>


这样,系统启动时,会自动运行 /var/root/ramfs.sh 这个脚本,来帮助我们在内存空间中划分出256M模拟 /private/tmp 目录。这样,系统运行时产生的一些临时文件就直接写入内存中了,减少了写磁盘的次数。

同时,可将一些在运行时会产生大量临时文件的目录软链接到 /private/tmp 下,只要满足:1)这些临时文件不会太大(我们只使用256M内存);2)不是特别重要的数据,即使丢失也无妨。

 

关闭Safari的Web Pageview

如果你像我一个,不使用Safari的Top Sites功能,完全可将该功能关闭掉。该功能会导致访问网站时,生成大量图片文件。

 

  1. rm ~/Library/Caches/com.apple.Safari/Webpage\ Previews/* #删除所有预览文件
  2. chmod 500 ~/Library/Caches/com.apple.Safari/Webpage\ Previews/ #设置该目录为只读


或者用下面命令禁止Safari生成预览文件:
 

  1. defaults write com.apple.Safari DebugSnapshotsUpdatePolicy -int 2


关闭Spotlight索引

同样的,如果你不怎么使用spotlight,可将其关闭掉:

  1. sudo mdutil -i off # 关闭spotlight索引
  2. sudo mdutil -E #清除spotlight索引

在需要spotlight功能时,可再将其还原:

  1. sudo mdutil -i on #打开spotlight索引

posted on 2011-01-23 20:53 逛奔的蜗牛 阅读(3014) 评论(0)  编辑 收藏 引用 所属分类: Mac

只有注册用户登录后才能发表评论。
【推荐】超50万行VC++源码: 大型组态工控、电力仿真CAD与GIS源码库
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理