存储技术与性能优化

来源:互联网 发布:写小说在哪里投稿 知乎 编辑:程序博客网 时间:2024/05/17 21:55

   例如,文件系统迁移裸设备,增加磁盘数量,增加I/O通道带宽,提高磁盘条带化程度等。这种大动干戈,尤其是投入大量硬件和存储之后,却往往是收效甚微。

 

 

 

  事实上,作为一个整体应用,很多系统大量I/O操作是应用软件不合理导致的。因此在出现大量I/O操作时,应先分析是否能优化软件。

通常而言,一个oltp的主要操作都只涉及局部数据,通过采用合理的索引策略,资源消耗非常低,不应该存在严重的I/O瓶颈。

一般只有数据仓库、统计报表等应用的大批量数据操作,oracle也有很多降低I/O瓶颈。例如,物化视图可降低数据统计运算量,统计信息采集只采集变化数据,包括RMAN增量备份,可采用快速增量备份技术等。

 

裸设备

Oracle数据库支持的主要存储类型包括普通文件系统、集群文件系统、裸设备、自动存储管理技术(ASM)等。从技术原理上讲,在大多数据操作情况下,应该是裸设备性能最佳。因此每当出现某种新存储技术时,业界都会将裸设备性能作为基准指标,与新存储技术的性能进行对比。但裸设备并不是每种操作的性能都是最佳的。

 

其中,顺序读/写主要针对统计运算。随机读/写主要针对一般交易型的联机事务。可见,在顺序读时,文件系统性能反而高于裸设备,其他3种情况都是裸设备高。

 

文件系统和裸设备的原理分析

 

首先,基于文件系统的数据库操作,对数据的I/O操作需要经过操作系统的内存缓冲区,同时也要存储在数据库SGA内存区,这样不仅在内存保存了两份数据,也导致了访问开销的增加。而基于裸设备的数据库操作,I/O操作不需要存储在操作系统的内存缓冲区,同时也支持异步I/O,支持大批量的读写操作。因此,裸设备总体上I/O操作开销更小,而性能更佳。

 

   但是,在进行大批量数据的顺序读操作时,也就是数据仓库等系统进行大型统计等操作的情况下,特别是进行全表扫描时,由于oracle Buffer cache采用LRU算法,这些数据保存在LRU列表的尾部,比按索引访问的数据会更快地淘汰出buffer cache。因此,如果采用裸设备技术,这些数据虽然不在oracle内存了,但只要操作系统内存足够,这些数据还保存在操作系统内存中。因此,文件系统情况下,大量统计运算操作,特别是重复数据的访问反而会更快一些。

 

   除了在性能方面进行对比分析外,在可管理性方面也充分考虑。文件系统看得见,摸得着,作为oracle数据文件,还能自动扩展。而裸设备需要专门的卷组管理系统进行管理,需要创建VG、LV等都不能对裸设备进行操作。作为oracle数据文件,裸设备还不能自动扩展。因此,在海量数据库实施中,裸设备需要精心设计,例如,需要事先进行容量评估,在运行维护中也需要加强日常监控。

 

 

有没有将文件系统优点和裸设备优点结合起来的存储技术?有,这就是ASM.

 

文件系统的优点:

 

作为典型的数据仓库系统,该系统具有大批量顺序读写的技术特征,尤其是各种统计分析将导致大量顺序操作,而这正好是文件系统的优势。

文件系统可管理性更好。

由于客户硬件投入少,该系统为单机系统,不需要考虑在RAC环境下必须使用裸设备、ASM、集群文件系统等要求。

 

   因此该数据仓库系统采用了再简单不过的JFS文件系统。目前,该系统已经平稳高效运行了多年,客户从未感觉过文件系统方面带来了什么I/O性能问题。

 

 

原创粉丝点击