详细讲解Oracle I/O子系统的配置和设计
2008-09-02 12:46:47 来源:WEB开发网在我们设计数据库的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
更多精彩
赞助商链接