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

linux内存硬盘 Linux下tmpfs文件系统详解​

2014-04-20 12:12 501 查看

linux下面将常用临时目录挂载到内存 Linux下tmpfs文件系统详解 linux内存硬盘 把内存当硬盘使用 Linux将内存挂载到目录 linux下面将常用临时目录挂载到内存

方法自己去google了,不过这个效果真的很好哈,贴下自己的:
tmpfs   /dev/shm    tmpfs   defaults        		0 0
tmpfs 	/tmp        tmpfs   defaults,noatime,mode=1777	0 0
tmpfs 	/var/log    tmpfs   defaults,noatime,mode=1777 	0 0
/tmp /dev/shm都没得说,但是/var/log要特别小心,如果是个人电脑,应该还无所谓。重启后会丢失日志记录的。/dev/shm是linux下的一块共享内存结构。默认大小是真实内存的一半。它用来存储进程间通讯时的一些共享数据结构。在物理内存足够时,会在内存中进行数据交换,如果物理内存缺乏时,会用swap进行数据交换. 支持动态在线调整.在我们需要时可以增加或缩减它的大小。我们常见的浏览器加速:在Ubuntu中加速Firefox和Chrome的载入速度PS:其实对于个人电脑,就应该让日志这样,记那么多干啥呢?
来自:http://blog.dotlife.cn/?p=191 首先说一下核心的命令: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针对所有的用户都能进行读写操作,不用担心权限问题;

Linux下tmpfs文件系统详解tmpfs 是一个临时文件系统,驻留于Linux的交换分区或是内存中(取决于你的使用情况)。它的意义在于提高系统一些部分的速度,并能在重启时自动清除一些文件。tmpfs 可以被安全使用在的目录有 /tmp, /var/lock and /var/run. 不要将之使用于 /var/tmp, 因为这一目录中的临时文件在重启过程中还是被保留。Warning: 一些 daemon 进程仍然将一些文件(或目录)安装在 /var/lock 和 /var/run 下。因此需要编辑 /etc/rc.d 下的脚本来使它们正常工作 (如 lighttpd)。默认情况下, tmpfs 分区被设置为你总的内存的一半,当然你可以自由设定这一值。注意实际中内存和交换分区的使用情况取决于你的使用情况,而 tmpfs 分区在其真正使用前是不会占用存储空间的。要在 /tmp,/var/lock 和 /var/run 下使用 tmpfs,在 /etc/fstab 中添加如下几行: tmpfs /tmp tmpfs defaults,nodev,nosuid,mode=1777 0 0 tmpfs /var/lock tmpfs defaults,nodev,nosuid,noexec,mode=1777,size=10m 0 0 tmpfs /var/run tmpfs defaults,nodev,nosuid,noexec,mode=0755,size=10m 0 0你可以在这里指定其大小,但是在这种情况下你应该突出 mode 部分,以确保它们可以有正确的权限设置。在上面的例子中, /tmp 将会占用你的一半内存,其它的两个目录被设置为各占用 10 MB 大小。重启后方能生产。注意尽管这样做非常地诱人和有效,但是千万不要直接执行 mount -a 命令,因为可能造成当下这些目录的不可访问 (比如你应该保证 lockfiles 的正常存在)。然而,如果它们都是空的,那么就可以直接执行 mount -a 而不必重启电脑。在重启前你可以执行 mount /tmp 等来激活其中一些选项,其余的则要在重启后生效。在进行了如上面的改动后,要检验它是否如愿起作用你可以用 df 命令( df -h): tmpfs 2.0G 20K 2.0G 1% /tmp tmpfs 10M 0 10M 0% /var/lock tmpfs 10M 48K 10M 1% /var/run

下面的一个bash脚本以firefox为例,说明了挂载步骤,这是需要手动挂的方法。
[python:collapse:showcolumns]+ expand sourceview plaincopyprint?·········10········20········30········40········50········60········70········80········90········100·······110·······120·······130·······140·······150#!/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 elseif [ ! -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. 启动firefox6. 退出firefox时,同步一下文件,然后杀死后台同步文件的那个进程。7. 删掉符号链接。
使用这个脚本后,firefox的运行速度明显加速,特别是网页中的DIV的设计,脚本什么的,直接就装进内存了。当然,你要运行其它的程序也可以。可以自己修改脚本。如果你在linux下有一个涉及大量数据计算的程序,挂载内存后,把程序直接拷到/var/tmp下将是一个特别好的选择。
这也应该是在linux下在线写csdn博客的一个好消息。由于博客以前每一次自动保存,会显的特别卡,现在缓冲文件全部在内存上运行了,保存博客的操作时,根本感觉不到卡了。现在在linux下在线写CSDN博客感觉方便 了,而且打开CSDN的网站特别的快。来自:http://blog.csdn.net/wfing/article/details/5964288
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  linux 内存 硬盘