文件系统与裸设备性能比较(2)

 

现在有一种经典的说法是oracle安装的祼设备上面比安装在文件系统上面要快。

是不是任何情况下都是这样呢?

以下是我的一点个人分析,如有不对之处请指出。


目前一般的文件系统都是有日志的。为了尽量减少文件系统的不一致性,缩短操作系统的启动时间,文件系统需追踪引起系统改变的记录,这些记录存放在与文件系统相分离的地方,通常我们叫“日志”。一旦这些日志记录被安全地写入,日志文件系统就可以应用它们清除引起系统改变的记录。这个日志的作用就像oracle中redo的作用一样。

数据库建在文件系统上面主要有以下几点需要考虑:

1.日志维护的开销。这点要根据文件系统具体的日志模式,像ext3就有三种日志模式,为了安全起见,这个日志维护的开销将不可忽视。

2.OS维护和管理文件系统的开销。在数据库的情况下,用户一般都是在现存文件的中间写入数据,甚至覆盖现存文件。这种操作一般是先截断该文件,然后再写入数据。每次都会涉及到文件的改变,因此这部分的管理开销也将不小。

3.采用文件系统,就会涉及到文件系统的缓存(pagecache)。有这个文件系统的缓存,就会导致写操作比写祼设备的速度要慢。因为当发生一个IO,将oracle buffer中的块写入硬盘时,一般都是先将这个块写到pagecache中,然后再从pagecache flush到硬盘上。而oracle为了保证确保不会有数据丢失必须等这个块从pagecache flush到硬盘的操作完成后才会收到一个写入完成的消息。所以说采用文件系统,写操作比直接写到祼设备的操作要慢。

4.采用文件系统,因为有文件系统缓存,读操作一般会比采用祼设备要快。这点不仔细描述了。我想大多数人都能接受这一点。

根据上面4点,我觉的,如果一个系统在系统资源(包括CPU,内存,IO)不存为瓶颈时,同时读操作又多于写操作时,一般情况下采用文件系统会比采用祼设备要快。

如果能够预估到系统资源可能会成为瓶颈,或者写操作又较多时,应该考虑采用祼设备。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值