全部博文(167)
分类: Oracle
2009-09-29 17:36:19
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
数据块大小的选择。
8K是适合于大多是系统的,但是有时候OLTP系统使用更小,DSS使用更大的数据块可以提供更优的性能。
READS
如何行比较小,访问比较随机,选择较小的块
如果行比较小,访问是连续的,选择较大的块
如果行比较小,访问情况复杂,尽量选择较大的块
如果行比较大,包含诸如LOB类型的字段,那么选择较大块WRITES
在一个高并发的OLTP系统中,使用一个大块,那么要慎重的考虑INITRANS,
所以我创建raid0 的命令式
metainit -f d6 1 4 c1t2d0s0 c1t3d0s0 c1t4d0s0 c1t5d0s0 -i 32k