LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 1407|回复: 10

ReiserFS性能微调(转)

[复制链接]
发表于 2008-10-15 05:05:34 | 显示全部楼层 |阅读模式
ReiserFS性能微调
在baidu的cache找到这篇文章, 转载过来, 希望对大家有所帮助.



options - 指定加载该设备的文件系统是需要使用的特定参数选项,多个参数是由逗号分隔开来。对于大多数系统使用"defaults"就可以满足需要。其他常见的选项包括:

选项 含义
ro 以只读模式加载该文件系统
sync 不对该设备的写操作进行缓冲处理,这可以防止在非正常关机时情况下破坏文件系统,但是却降低了计算机速度
user 允许普通用户加载该文件系统
quota 强制在该文件系统上进行磁盘定额限制
noauto 不再使用mount -a命令(例如系统启动时)加载该文件系统

dump
被"dump"命令使用来 检查一个文件系统应该以多快频率进行转储,若不需要转储就设置该字段为0

pass
被fsck命令用来决定在启动时需要被扫描的文件系统的顺序,根文件系统"/"对应该字段的值应该为1,其他文件系统应该为2。若该文件系统无需在启动时扫描则设置该字段为0 这样提高速度

如果您想在自己的 /etc/fstab 文件中添加一个 ReiserFS 文件系统,只需将“freq”和“passno”字段设置为“0”,如下所示:

/dev/hda1 /home reiserfs defaults 0 0

从这以后,您的 ReiserFS 文件系统应该不比它的对手 ext2 逊色了,而且您再也不必担心长时间的“fsck”,整体性能也会好得多 ― 特别是对于小文件来说。

幸运的是,有几种简单通用的性能调整方法可以用来缓解这些问题。

不修改访问时间
第一种是用“noatime”选项(一种对 ReiserFS 和其它文件系统都有用的安装选项)来安装您的 ReiserFS 文件系统。您可能知道,UNIX 系统为文件系统上的每一个对象记录一个 atime,或称为访问时间,每次读取文件时,atime 都会被更新。对于大部分人来说,atime 邮戳功能不是十分有用,而且几乎没有任何应用程序(我想不到一个)依靠 atime 处理什么重要的任务。出于这个原因,通常可以安全地关掉它,这样可以带来一个很好的全面性能提升。通常情况下,除非您确实知道自己需要 atime 支持,您还是应该用 noatime 选项来安装文件系统。使用如下所示的 /etc/fstab 条目:

/dev/hda1 /home reiserfs noatime 0 0

在 ReiserFS 术语中,“tail”是小于一个系统文件块(4k)的文件,或不能填满一个完整的文件系统块的文件末尾部分。ReiserFS 具有确实卓越的小文件处理性能是因为它能够将这些 tail 合并到它的 b*tree(它的主要数据组织结构)中去,这样它们就能真正地接近 stat-data(ReiserFS 中等同于索引节点的单元)。然而,因为这些 tail 不能填满一个完整的块,它们会浪费很多磁盘空间(当然是相对地说)。为了解决这个问题,ReiserFS 使用了它的“tail packing”功能来将这些 tail 压缩到占用尽可能小的空间。通常,这么做可以让 ReiserFS 文件系统比大小相等的 ext2 文件系统多容纳大约 5% 的数据。

然而,tail packing 也有它的缺点。首先,它的确给性能带来了一个小却不可忽视的冲击。幸运的是,ReiserFS 开发人员已经预计到有些人宁愿牺牲大约 5%的磁盘空间换取一点额外的性能,所以他们创建了“notail”安装选项。当文件系统用这个选项安装时,tail packing 将被关闭,使您的存储容量减小,却有更快的速度。通常,重视文件系统性能的狂热分子同时启用“notail”和“noatime”选项来安装他们的文件系统,从而带来显著的性能提升:

/dev/hda1 /home reiserfs noatime,notail 0 0

即便您想节省一点磁盘空间,有时候暂时用一下“notail”选项安装文件系统也是件好事。特别是,大多数引导装载器(boot loader)装载一个在启用 tail packing 的 ReiserFS 文件系统上创建的内核时,都会出现问题。如果您正在使用一个比版本 21.6 还低的 LILO,您就会碰到这种问题。在使用最新版本的 GRUB 时也会碰到问题,即不能装载它的 stage1 和 stage1_5 文件,尽管在装载实际内核的时候没有什么问题。如果您已经在经历这种问题了,您可以这样修正此问题-使用“notail”选项安装文件系统,将文件移到另一个文件系统中,然后再把它们移回来。当文件被重新创建时,就不会有 tail 了。另外,记住您还可以很轻易地重新安装文件系统(用新选项),而不需要卸载它。这个特别的示例使用“notail”选项重新安装根目录文件系统。通常情况下,如果您想使用 tail packing,但也需要引导装载器(boot loader)从根目录文件系统装载辅助文件(如内核),这条命令就很有用了:

# mount / -o remount,notail
发表于 2008-10-15 07:55:25 | 显示全部楼层
嘿,某些发行版的fstab文件内会有提示:
  1. # noatime turns off atimes for increased performance (atimes normally aren't
  2. # needed; notail increases performance of ReiserFS (at the expense of storage
  3. # efficiency).  It's safe to drop the noatime options if you want and to
  4. # switch between notail / tail freely.
复制代码
回复 支持 反对

使用道具 举报

发表于 2008-10-15 08:11:46 | 显示全部楼层
193 Load_Cycle_Count        0x0032   134   134   000    Old_age   Always       -       198324
本子24小时开机用了10个月..,被LZ说的我也有点怕怕的.. 这么算下来还能再用20个月- -!
又觉得不知道20个月之后是不是已经换了更大的硬盘了

MS我这不是noatime的问题了,因为一直开着amule.. 隔一会就会度写磁盘..整天听硬盘咯嗒咯嗒的响...寒
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-10-15 11:40:37 | 显示全部楼层
Post by maitr;1894105
嘿,某些发行版的fstab文件内会有提示:
  1. # noatime turns off atimes for increased performance (atimes normally aren't
  2. # needed; notail increases performance of ReiserFS (at the expense of storage
  3. # efficiency).  It's safe to drop the noatime options if you want and to
  4. # switch between notail / tail freely.
复制代码

证明了用noatime是安全的。对于大部分人来说,atime 邮戳功能不是十分有用,而且几乎没有任何应用程序(我想不到一个)依靠 atime 处理什么重要的任务。出于这个原因,通常可以安全地关掉它,这样可以带来一个很好的全面性能提升。可能很多高手都这样做了,我一直没留意。
回复 支持 反对

使用道具 举报

发表于 2008-10-15 13:24:12 | 显示全部楼层
晕,我以为我IDE硬盘就没有这样的问题,不是说只有sata有嘛。我今天以看也有十几万的数量。。
回复 支持 反对

使用道具 举报

发表于 2008-10-15 14:54:45 | 显示全部楼层
要不启用acpi才行?不是说只有Ubuntu才有这个现象吗?
回复 支持 反对

使用道具 举报

发表于 2008-10-15 16:34:10 | 显示全部楼层
hdparm -B 254 了,硬盘温度上升2度,反正冬天了,也还不算热。

我的是gentoo... 装系统的时候就打开noatime了。
我的问题应该是挂电驴导致的,本来想为了节省硬盘,amule缓存开到最大,应该是amule读写硬盘的时间间隔大于硬盘load/unload的时间间隔...

反正,就那样吧,朋友说我是虐待电脑的典范...
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-10-16 00:35:30 | 显示全部楼层
load_cycle_count增长问题一直无法解决
回复 支持 反对

使用道具 举报

发表于 2008-10-17 15:28:33 | 显示全部楼层
用了noatime就可以了,不过每个分区都需要加上noatime参数。。我还给exo打补丁加上了这参数。。。现在也不增长了。。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-10-21 16:27:12 | 显示全部楼层
Post by jarryson;1895225
用了noatime就可以了,不过每个分区都需要加上noatime参数。。我还给exo打补丁加上了这参数。。。现在也不增长了。。


我的加了也不行,能不能贴一下你的fstab?
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表