Chinaunix首页 | 论坛 | 博客
  • 博客访问: 838049
  • 博文数量: 167
  • 博客积分: 7173
  • 博客等级: 少将
  • 技术积分: 1671
  • 用 户 组: 普通用户
  • 注册时间: 2009-08-04 23:07
文章分类

全部博文(167)

文章存档

2018年(1)

2017年(11)

2012年(2)

2011年(27)

2010年(88)

2009年(38)

分类: Oracle

2009-09-29 17:36:19

硬件环境:V890;数据盘是:2-5号盘进行raid 0.8-13号盘进行raid 0;然后这八块盘每四块盘一个整体进行镜像raid 1。Raid 0是条带化
现在的问题是:如何选择数据块的大少,使得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 应该在256KB1M。不同类型的应用需要不同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,

 

MAXTRANS, FREELISTS设置。这些参数影响到一个块的并发更新率。不过,如果你使用自动段空间管理,则不用考虑FREELISTS。如果你还是不能确定块的大小,那么就使用8K,如果你大量使用LOB类型,那么就可以大于8k



所以我创建raid0 的命令式

metainit -f d6 1 4 c1t2d0s0 c1t3d0s0 c1t4d0s0 c1t5d0s0 -i 32k

 


阅读(1147) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~