Ubuntu中使用RamDisk给Chrome浏览器提速


想法:

在Ubuntu环境中,将google-chrome浏览器的缓存放到RamDisk里,从而实现网页浏览加速。

1. 背景知识:Ubuntu中的RamDisk,参考链接:  

Ubuntu默认将内存的一半作为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环境试验成功。

相关内容