chho的专栏

对于整个世界我微不足道,但是我对于自己确是全部

UFS+S的性能提高

1、如果服务器用作提供静态文件的WEB服务,打开SOFTUPDATE与否对磁盘性能都没有太大影响?

SoftUpdates只优化写元数据的性能,因此我认为开不开应该没有影响。

2、如果作DATABASE应用,性能有很大提高,风险也非常非常高?

如果你的数据库服务器写的对(即,每次commit操作都作fsync),则不会有什么影响。一些不负责任的操作系统/文件系统/数据库系统的这类操作不是同步进行的,但FreeBSD是(这也是很多评测报告声称FreeBSD慢的原因,因为某些其它OS是async的mount)。

性能提高是否很大则取决于你的数据库应用的性质。一般来说,尽管打开SoftUpdates会有一些改善,但未必很明显,因为典型的数据库程序并不经常导致文件系统的元数据更新操作(a.k.a. trunc, creat, unlink等等)。头脑正常的数据库系统开发人员通常是预先分配空间,包括日志和数据本身,SoftUpdates能加速的部分基本上也仅限于此。当然,如果你使用的数据库服务程序没有这样做,则也可能会有比较大的改善。

3、即使打开SOFTUPDATE碰到突然断电的情况也不会造成系统崩溃,仅仅丢失数据而已?

对于IDE硬盘,要做到这一点必须关闭IDE写入缓存(日志系统也是如此,但很多实现并不这样做)。方法是在 /boot/loader.conf 里面加入 hw.ata.wc="0"。此选项会显著降低磁盘的写入性能,但对于保持数据一致性是非常关键的。

SCSI硬盘一般没有这样的问题(它们通常支持tagged queue,而且不会对操作系统撒谎)

如果你能确信磁盘不欺骗操作系统(比如说明明只是在cache里面愣说已经写入了,方法是禁用IDE写入缓存,或者启用SCSI的tagged queue能力),则可以确定SoftUpdates在断电时不致损毁FS,你丢失的仅限于最多最后30秒写入或创建的文件数据,以及少量磁盘空间。对于FreeBSD 5.x,由于新加入的后台FSCK,这些空间可以在系统正常启动之后再行回收,从而大大减少启动所需要的时间。

阅读更多
个人分类: FreeBSD
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!
关闭
关闭