您的位置:首页 > 运维架构 > Linux

把内存当硬盘使,让你的linux程序运转如飞(在linux下用firefox在线写csdn的blog再也不卡了)

2010-10-25 15:46 507 查看
 首先说一下核心的命令:

  mount -t tmpfs -o size=1024m tmpfs /mnt/ram

这个命令开了一块1G内存来当目录用。不过放心,如果里面没文件,是不会占用内存的,用多少占多少。

当然,你可以在/etc/fstab中加一行语句,挂载一个点。

tmpfs              /var/tmp    tmpfs  size=768M,mode=0777   0      0

不过一般来说没必要手动挂载,因为多数发行版都会在fstab内预留了一个内存目录,挂载在/dev/shm,直接使用即可,/dev/shm针对所有的用户都能进行读写操作,不用担心权限问题;

 

下面的一个bash脚本以firefox为例,说明了挂载步骤,这是需要手动挂的方法。

#!/bin/bash
# Alex Alexander (wired) <alex.alexander@gmail.com>
# http://www.linuxized.com #
# this script makes sure your .mozilla folder is in tmpfs and constantly syncs it
# with a folder on your hdd so you won't lose anything :)
# for more details on how it works visit my blog in the link above.
#
# for this to have any meaning, the MOZTMPFS folder must be on tmpfs
# i.e. to make /var/tmp a tmpfs folder, add the following in /etc/fstab
# tmpfs      		/var/tmp	tmpfs  size=768M,mode=0777         0 0
#
# don't forget to mount the first time!
# your ram mozilla folder
MOZTMPFS=/var/tmp/`whoami`_mozilla
# your original mozilla folder - i recommend: mv ~/.mozilla ~/.mozilla-hdd
MOZHDD="${HOME}/.mozilla-hdd"
# your ~/.mozilla
MOZHOME="${HOME}/.mozilla"
# seconds interval for rsync
INTERVAL=60
# lets make sure MOZHDD exists before we do anything naughty
if [ ! -d "${MOZHDD}" ]; then
echo "ERROR"
echo "${MOZHDD} doesn't exist."
echo "we won't do anything until you cp/mv your ${MOZHOME} folder there."
echo "try: mv ${MOZHOME} ${MOZHDD}"
exit
fi
# check for and create tmp folder
if [ ! -d "${MOZTMPFS}" ]; then
mkdir -p ${MOZTMPFS}
fi
# check for ~/.mozilla
# if it exists and is a directory die
if [ -e "${MOZHOME}" ] && [ ! -L "${MOZHOME}" ]; then
echo "ERROR"
echo "${MOZHOME} should not exist or should be a link"
echo "aborting to avoid permanent damage"
echo "backup and/or delete ${MOZHOME} and try again"
exit
else
if [ ! -e "${MOZHOME}" ]; then
ln -s "${MOZTMPFS}" "${MOZHOME}"
fi
fi
# sync to tmpfs
echo "syching ${MOZHDD} to ${MOZTMPFS}"
rsync -avi --delete "${MOZHDD}/" "${MOZTMPFS}/"
echo "executing reverse sync every ${INTERVAL} seconds"
( while true; do sleep ${INTERVAL}; rsync -avi --delete "${MOZTMPFS}/" "${MOZHDD}/"; done; ) &
SYNC=$!
echo "launching firefox";
firefox
echo "firefox closed, kill auto sync and reverse sync one last time"
echo "please wait..."
kill $!
rsync -avi --delete "${MOZTMPFS}/" "${MOZHDD}/"
echo "all done, removing ${MOZHOME} link for safety reasons =]";
rm ${MOZHOME}

 

 

把这个脚本的大致步骤说 一下,

 先需要手动操作:    在/etc/fstab里为/var/tmp设了一个挂载点,即可以用1G的内存。把你家目录下的.mozilla 文件夹重命名为.mozilla-hdd

脚本的操作,然后重启电脑,让他读取fstab中的操作,当然,你不重启电脑,用一个mount命令也可以。如果你不想在/etc/fstab中挂载的话,直接把脚本中的/var/tmp换成/dev/shm也成。

1. 检查是否存在.mozilla-hdd目录,并且确保.mozilla目录不存在

2. 在/var/tmp下建一个文件夹,例如wyc_mozilla,这个文件夹即是.mozilla,然后把建立符号链接.mozilla,链接到挂载到内存的那个目录。

3. 先同步.mozilla-hdd和/var/tmpwyc_mozilla。通过绕这个弯,实际上.mozilla这个配置文件的目录是通过内存读取的.mozilla-hdd目录。同步的目的是预先读出firefox的配置内容,确保你的每一次操作的信息都保存到了.mozilla-hdd目录中。

4. 在后台运行一个进程,每隔一段时间同步一次.mozzilla-hdd和/var/tmpwyc_mozilla目录。时间默认的是60秒。

5. 启动firefox

6. 退出firefox时,同步一下文件,然后杀死后台同步文件的那个进程。

7. 删掉符号链接。

 

使用这个脚本后,firefox的运行速度明显加速,特别是网页中的DIV的设计,脚本什么的,直接就装进内存了。当然,你要运行其它的程序也可以。可以自己修改脚本。如果你在linux下有一个涉及大量数据计算的程序,挂载内存后,把程序直接拷到/var/tmp下将是一个特别好的选择。

 

这也应该是在linux下在线写csdn博客的一个好消息。由于博客以前每一次自动保存,会显的特别卡,现在缓冲文件全部在内存上运行了,保存博客的操作时,根本感觉不到卡了。现在在linux下在线写CSDN博客感觉方便 了,而且打开CSDN的网站特别的快。

 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
相关文章推荐