赛迪网 > IT技术 数据库 > Oracle
  IT资讯搜索
 
IT产品搜索
[程序开发][网管世界][网络安全][数据库技术]
[操作系统][嘉宾聊天·在线访谈][活动集锦]
[精彩专题][Symantec专区][订阅IT技术周刊]
[开发论坛][网管论坛][安全论坛][数据库论坛]
[操作系统论坛][Sybase专区][IBM dW技术专区]
[病毒求助][病毒与漏洞播报][文档·源码下载]

详细讲解Oracle I/O子系统的配置和设计 (1)

发布时间:2008.04.30 05:03     来源:赛迪网    作者:Rock

【赛迪网-IT技术报道】很多人都知道,Oracle IO子系统是数据库中一个非常重要的组成部分。 由于很多软件系统的瓶颈都是由DISK IO引起的,系统花费了大量的CPU_TIMES用于等待I/O行为的完成。

在我们设计数据库的IO子系统的时候,应该考虑以下因素:

■ 存储,最小的磁盘容量

■ 可用性,诸如(24 x 7) 不间断的服务

■ 性能,诸如I/O的吞吐量和系统响应时间

基本的IO设计

使用操作系统或者硬件来条带化文件存储,如果你的操作系统有类似LVM和硬件striping,的化,那么使用它们来尽可能的分散IO。在striping中,要考虑两个要素:stripe width 和stripe depth

■ Stripe depth 指的stripe的大小,也被称为stripe unit。

■ Stripe width 指的stripe depth 和 stripe设定中驱动器的数目的乘积。

在Oracle数据库中,一个合理的stripe depths 应该在256KB到1M。不同类型的应用需要不同stripe depth,最理想的stripe depth 和 stripe width应该考虑以下:

■ I/O请求的大小

■ 同时发生I/O

■ Physical Stripe Boundaries 和 Block Size Boundaries

■ Manageability of the Proposed System

I/O请求的大小

下面是在配置I/O会用DB和OS参数:

DB_BLOCK_SIZE:单块I/O请求的大小,也被用于诊断多块I/O请求。

OS block size:操作系统块的大小

Maximum OS I/O size:OS能提供的最大单块I/O的大小

DB_FILE_MULTIBLOCK_READ_COUNT:它和DB_BLOCK_SIZE的积用于计算全表扫描最大I/O,注意能超过OS限制。默认为8。

SORT_AREA_SIZE:排序操作需要的I/O大小

HASH_AREA_SIZE:hash操作需要的I/O大小

出了I/O大小外,并发度也决定了stripe的depth。在选择stripe width和stripe depth的时候请考虑以下因素:

■在低并发的系统中,确保在同一磁盘上不会发生重复单一的I/O。这是什么意思呢?例如,假设stripe width有4个磁盘,stripe depth

是32KB,这时候Oracle server process发出一个1MB的I/O请求,那么每个磁盘都会返回8次I/O请求。为了尽量避免这种情况,平均I/O请求的大小应该小于stripe width×stripe depth,在这里是32KB×4,否则就会在一个磁盘发生第二次I/O。

这是完全理想化的设计。

■在高并发的系统中,要确保单一的I/O请求会被分散到多个物理I/O中完成,如果不行,则会严重的影响系统响应时间。

并发的I/O

在OLTP系统中,特点是高并发和低I/O需求,这时最好Stripe depth大于一个单独I/O的大小,这种被称为粗颗粒stripe。

在高并发的系统中,一般stripe depth设计为n×DB_BLOCK_SIZE,n>1.

粗颗粒stripe设计使得磁盘可以以队列的方式同时执行多个I/O,这样就可以以最小的成本处理大量的并发I/O。不过,一旦系统不具备并发足够并发,就会导致磁盘热点。

粗颗粒stripe设计也同样有益于DSS系统,但它应该设计得小一点,同样它大小也为n×DB_BLOCK_SIZE,但n应该小于DB_FILE_MULTIBLOCK_READ_COUNT。

而细颗粒设计能够获得最好的响应时间。

Alignment of Physical Stripe Boundaries with Block Size Boundaries

如果物理stripe颗粒和块大小一致的化,就可能会导致一个单独I/O分散到两个物理IO中。这不是最优化的OLTP环境,所以stripe最好是两倍BLOCK的大小。下面是关于大小的建议:

Random reads and writes 两倍BLOCK大小

Sequential reads 两倍DB_FILE_MULTIBLOCK_READ_COUNT×DB_BLOCK_SIZE

Manageability of the Proposed System

使用LVM可以更加容易配置所有可用磁盘的stripe,在大多数环境下,单卷就可以提供良好的性能。不过单卷只在使用RAID技术的时候可用,如RAID 1,不过丢失一个卷卷意味着丢失所有卷。

1 2 下一页>>


[ 发表评论 ] 字体[  ] [ 打印 ] [ 进入博客 ] [ 进入论坛 ]  [ 推荐给朋友 ]
  相关文章
· 循序渐进讲解Oracle数据库的Hash join (04-29) · 由浅入深讲解Oracle数据库的碎片整理 (04-28)
· 让Oracle数据库始终保持优良的性能 (04-28) · 如何让Oracle数据库始终保持优良性能 (04-28)
· Oracle数据库中按用户名重建索引的方法 (04-28) · Oracle性能调优过程中如何观察缓存命中率 (04-28)
· 在Oracle中列出指定数据表的全部索引列 (04-28) · 怎样在Oracle中执行一次基本的快照复制 (04-28)
· 循序渐进讲解Oracle数据库管理员的职责 (04-28) · 详细讲解Oracle数据库后台进程的具体功能 (04-27)
  客户需求反馈表
* 姓  名:
更多资料  了解方案  认识厂商
* 单位名称:
* 联系电话:
* 电子邮件:
  赛迪推荐  
  手机·资费 ·新品·导购·评测·手机资费·宽带
手机搜索  诺基亚 N73 MOTO Z6
  IT产品 ·笔记本·台式机·服务器·打印·投影
IT产品搜索 
  IT技术 ·开发·网管·安全·数据库·操作系统
  信息化 ·热点·专题·访谈·周刊·方案案例
· 整合平台模式多样化 多卡合一模式渐成主流
· 网店征税步入倒计时 电子商务或将重新洗牌
· 谈八大厂商的“云计算”理念 信息化监理
· 企业短信平台解决方案 方正智思系统软件
  IT博客 ·曾剑秋·项立刚·Java学习·网管
  IT技术论坛 ·开发·网管·安全·数据库·系统