xinzhan 2011-08-06
想法:
在Ubuntu环境中,将google-chrome浏览器的缓存放到RamDisk里,从而实现网页浏览加速。
1. 背景知识:Ubuntu中的RamDisk,参考链接: http://www.linuxidc.com/Linux/2010-12/30868.htmUbuntu默认将内存的一半作为ramdisk空间使用。挂载点为/dev/shm 文件类型为tmpfs
/dev/shm 不完全是RamDisk,若它使用超过电脑一半以上的RAM,就会开始吃SWAP。另外它没用到的部份,会自动释放出来给系统使用。
将/tmp目录设置到RamDisk的方法
基本上只要打以下指令,就能将 /tmp 绑定到 /dev/shm
mkdir /dev/shm/tmp chmod 1777 /dev/shm/tmp mount --bind /dev/shm/tmp /tmp
※ 注:为何是用 mount –bind 绑定,而不是 ln -s 软连结,原因是 /tmp 目录,系统不给删除。
2. 背景知识:google-chrome的用户数据位置
linux版本的chrome默认的用户数据位置在$HOME/.config/google-chrome,可通过在浏览器地址栏中输入about://config来查看。
3. 移动chrome用户数据,并在默认位置建立符号连接
sudo mkdir /dev/shm/google-chrome sudo chmod 777 /dev/shm/google-chrome cp -r ~/.config/google-chrome /dev/shm/ rm -r ~/.config/google-chrome ln -s /dev/shm/google-chrome ~/.config/
至此已经实现了将chrome的用户数据移动到RamDisk中。打开Chrome浏览器,输入about://config,会看到如下信息:
Profile Path: /dev/shm/google-chrome/Default
现在的问题是,关机或重启系统后,保存在RamDisk中的用户数据会丢失,chrome浏览器恢复到初次安装状态。要解决此问题,需要在退出系统时,自动保存chrome用户数据,并且在进入系统时,自动恢复用户数据到RamDisk。
4. 自动保存和恢复chrome用户数据
4.1 退出系统时自动保存chrome用户数据
在home目录建立一个脚本,取名backupchrome:
vi ~/backupchrome
内容如下:
#! /bin/sh tar -cvzf /home/xxx/chrome-data.tar.gz /dev/shm/google-chrome
赋予可执行权限:
chmod 777 ~/backupchrome
在/etc/rc0.d/(关机脚本)和/etc/rc6.d/(重启脚本)两个目录中建立该文件的符号连接,均以K开头,表示在退出系统时执行:
sudo ln -s ~/backupchrome /etc/rc0.d/K01backupchrome sudo ln -s ~/backupchrome /etc/rc6.d/K01backupchrome
4.2 进入系统时自动恢复chrome用户数据
在home目录再建立一个脚本,取名restorechrome:
vi ~/restorechrome
内容如下:
#! /bin/sh cd / tar -xvzf /home/xxx/chrome-data.tar.gz
顺便再写一个将/tmp文件夹mount到RamDisk的脚本,取名mounttmp:
vi ~/mounttmp
内容如下:
#! /bin/sh mkdir /dev/shm/tmp chmod 1777 /dev/shm/tmp mount --bind /dev/shm/tmp /tmp
将两个文件赋予可执行权限:
chmod 777 ~/restorechrome chmod 777 ~/mounttmp
现在需要确认Ubuntu的runlevel,只需输入:
runlevel
返回值:
N 2
说明Ubuntu图形界面的runlevel是2。因此在/etc/rc2.d/目录中建立这两个文件的符号连接,均以S开头,表示在进入系统时执行:
sudo ln -s ~/restorechrome /etc/rc2.d/S01restorechrome sudo ln -s ~/mounttmp /etc/rc2.d/S02mounttmp
配置结束,可重启系统验证。
本文配置方法在Ubuntu 11.04 x86_64环境试验成功。