Total Pageviews

Saturday, 26 November 2011

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

No comments:

Post a Comment