在Ubuntu中对文件日志系统进行优化

为当前最终发行版之前的所有版本提供支持
回复
头像
dongmh
帖子: 715
注册时间: 2005-06-21 20:24
来自: 甘肃
送出感谢: 0
接收感谢: 0
联系:

在Ubuntu中对文件日志系统进行优化

#1

帖子 dongmh » 2006-05-19 11:52

过年之后 一直没有动手谢过东西 今天闲下来 好不容易写点东西

ubuntu目前支持很多文件格式,有很多是日志形式的,日志的确是好东西,有了它就有了很高的安全性。
但是日志同样带来了一些性能的问题,大家都知道现在很多时候电脑的瓶颈在I/O,而且特别是笔记本电脑,硬盘转速不高,这方面的问题更严重,所以我准备了一个解决这个问题的方法,但是前提是这个方法会降低硬盘数据的安全性,所以请好好考虑过在利用。

第一部分 预备知识

首先 我们的优化真对于reiserFS和ext3,他们都有三种日志模式:

journal日志模式
日志中记录包括所有改变文件系统的数据和元数据。它是三种日志模式中最慢的,但它将发生错误的可能性降至最小。使用journal模式要求系统将每个变化写入文件系统2次、写入日志1次,这将降低文件系统的总性能,但它的确是使用者最心爱的模式。由于记录了在文件系统中元数据和数据更新情况,当一个系统重新启动的时候,这些日志将起作用。

ordered日志模式
仅记录改变文件系统的元数据,且溢出文件数据要补充到磁盘中。这是Ubuntu缺省的日志模式。这种模式降低了在写入文件系统和写入日志之间的冗余,因此速度较快,虽然文件数据的变化情况并不被记录在日志中,但它们必须做,而且由系统的守护程序在与之相关的文件系统元数据变化前执行,即在记录元数据前要修改文件系统数据,这将稍微降低系统的性能,然而可确保文件系统中的文件数据与相应文件系统的元数据同步。

writeback日志模式
仅记录改变文件系统的元数据,但根据标准文件系统,写程序仍要将文件数据的变化记录在磁盘上,以保持文件系统一致性。这是速度最快的日志模式。因为它只记录元数据的变化,而不需等待与文件数据相关的更新如文件大小、目录信息等情况,对文件数据的更新与记录元数据变化可以不同步,即异步的日志。缺陷是当系统关闭时,更新的数据因不能被写入磁盘而出现矛盾,这一点目前尚不能很好解决。

而我调整磁盘性能的出发点就从这个writeback开始,我们需要把ext3或者reiserFS的日志模式修改下,这个修改是可能带来隐患的,再次提醒大家,做得时候想明白。(不过其实你不经常断电的话,就没有什么问题,linux有不会死机,你让他正常关机,就没有任何问题)

第二部分 正式开工

代码: 全选

sudo gedit /etc/fstab
添加几个参数在你的fstab里面
添加前:

代码: 全选

/dev/hda7       /               reiserfs defaults        0       1
添加后:

代码: 全选

/dev/hda7       /               reiserfs defaults,data=writeback        0       1
保存之后,去修改内核参数

代码: 全选

sudo gedit /boot/grub/menu.lst
在你需要的内核的参数后面加上一句:

代码: 全选

kernel		/vmlinuz-2.6.16.16 root=/dev/hda7 ro quiet splash rootflags=data=writeback
这样的话 每次你更新内核 这句加上去的话就会自动被抹掉,所以你可以采用下面的方法在另外两行加上这句话

代码: 全选

# nonaltoptions=quiet splash rootflags=data=writeback
# altoptions=(recovery mode) single rootflags=data=writeback
这样再运行:

代码: 全选

sudo update-grub
就会为每一内核加上需要的参数,而且升级内核以后也会自动增加。

现在如果你使用的是reiserFS那么基本上已经ok了,但是如果是ext3你还需要作下面的事:

代码: 全选

sudo tune2fs -o journal_data_writeback /dev/hda1
然后检查下他是否正常工作了

代码: 全选

sudo tune2fs -l /dev/hda1
第三部分 一点补充设置
日志还会不停的记录上次写文件的时间,这个特性我从来没有用到过,所以我建议关掉它,性能会有微弱的提高
还是修改fstab:

代码: 全选

sudo gedit /etc/fstab
然后在刚才的参数上加入noatime:

代码: 全选

/dev/hda7       /               reiserfs defaults,noatime,data=writeback        0       1
第四部分 体验下
如果使用笔记本的话 重启一次就会有很明显的提高了,如果是速度7000转的高档硬盘可能也没有必要干这个事情,不过调整日志模式,即使是使用最慢的journal模式也还是会有丢失数据的危险,所以正确的当的使用电脑还是一个要点,请大家慢慢尝试。
ubuntu 6.06
我是初学者 大家多多关照
herotaotao
帖子: 74
注册时间: 2006-01-04 15:38
送出感谢: 0
接收感谢: 0
联系:

#2

帖子 herotaotao » 2006-05-21 16:01

不错,我照你说的试试,感受一下。
我向往自由,所以我加入了Linux ;我拥有爱心,因此我遨游在Ubuntu。
回复

回到 “老旧版本支持”