- 1、本文档共9页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
ERP 中磁盘阵列条带的划分 -针对 Oracle 数据库
OracleERP 中磁盘阵列条带的划分 -针对 Oracle 数据库
Oracle
I/O 和条带阵列如何相互作用 在几乎所有的大型数据库中,对磁盘进行条带化可以增 磁盘 I/O 的速率,而不会因为要管理分布在多个单独磁盘 的数据文件而增加过多的负担。正如前面讨论的那样,可以 利用应用数据库服务器上的卷管理器, 专 用 I/O 子系统, 或 者是两者的结合将磁盘组织成磁盘阵列。
如果使用的 Oracle 发布没有提供 ASM ,那么你 在建立条带 磁盘阵列的时候,可以设置用于给磁盘加条带的块大小。块 大小就是数据迁移到阵列中的另一个磁盘之前写入当前磁 盘的数据量。理解不同条带的块大小 与两种大小的 Oracle
I/O 之间的相互作用,对于将 I/O 性能最大化非常关键 假设一个 Oracle 数据块大小为 8KB ,并且
DB_FILE_MULTBLOCK_READ_COUNT 初始化参数设为
32。那么 Oracle 将支持两种大小的 I/O :一个单独的 8KB
数据块,和一 个 256KB 的多块读( 8KB 的 32 倍)。然后假 设为 Oracle 配置了一个包括 4 个磁盘的阵列,而块大小为
64KB ,那么 256KB 的数据库将会分散到 4 个磁盘中, 以及
每个磁盘 64KB 数据。
每个 8KB 的
每个 8KB 的 I/O 将命中
个轴, 而这 8KB 的数据 将会置于
个 64KB 的块中。由于并发的最大化,建立条带可以提高
小型 I/O 的性能,因为每个磁盘可以服务于不同的 I/O 。
256KB 的多块
256KB 的多块 I/O 将命中
所有 4 个磁盘。如果把块大小从
64KB 换成 256KB ,那么平均每个 256KB 的 I/O 请求只命中
个磁盘。在这种情况下,多块I/O
个磁盘。在这种情况下,多块
I/O 就只需要更少的 I /O 调
用,因为磁盘上的块大小比较大无论是哪一种情况,磁盘
用,因为磁盘上的块大小比较大
无论是哪一种情况,磁盘
都将会满足单数据库 I/O
都将会满足单数据库 I/O 调用
通过把一个 I/O 调用分散到
多个磁盘上建立条带,可以提高大 规模读操作的 I/O 速率, 在上面的 64KB 块大小和 256KB 多块 I/O 的例子中已经说明 了这一点。
那么什么是条带化呢?条带化 (Striping )是把连续的数据分 割成相同大小的数据块,把每段数据分别写入到阵列中不同 磁盘上的方法。 此技术非常有用, 它比单个磁盘所能提供 的 读写速度要快的多,当数据从第一个磁盘上传输完后,第
个磁盘就能确定下一段数据。数据条带化正在一些现代数据
库和某些 RAID
库和某些 RAID 硬件设备中得到广泛应
用。
条带化的设置 由于现在的存储技术成熟、成本降低,大多数系统都采用条 带化来实现系统的 IO 负载分担。如果操作系统有 LVM
Logical Volume Manager 逻辑卷管理器) 软件或者硬件条 带设备,我们就可以利用这些攻击来分布 IO 负载。当使用
LVM 或者硬件条带时, 决定因素是条带深度 (stripe depth )
和条带宽度( stripe width ):
条带深度指的是条带的大小,也叫条带单元;
条带宽度指的是条带深度的产量或者一个条带集中的驱动 数; 需要根据系统的 IO 要求来 合理的选择这些数据。对于
Oracle 数据库系统来数,比较合理的条带深度是从 256K 到
1M 。下面分析影响条带深度和条带宽度的影响因素。
条带深度 为了提高 IO 效率, 我们要尽量使一次逻辑 IO 请求由一块磁 盘的一次物理 IO 请求。因而影响条带的一个重要因素就是
次逻辑 IO 请求的大小。
IO 的并发度不同我们对条带的配置要求也不
同。例如,在高并发度且 IO 请求的大小都比较小的情况下,
我们希望一块磁盘能同时响应多 个 IO 操作;而在那些存在
大 IO
大 IO 请求的低并发度系统中
,我们可能就需要多块磁盘同
时响应一个 IO 请求。无论是一个磁盘还是多个磁盘响应 IO
请求,我们的一 个原则是让一次逻辑 IO 能被一次处理完成。
面先看下影响 IO 大小的操作系统和 Oracle 的相关参数:
db_block_size : Oracle 中的数据块大小,也决定了 Oracle
在多数据块读时,一次读次单个 IO 请求中的数据块的大小;
在多数据块读时,一次读
db_file_multiblock_read_count
取数据块的数量,它和参数 db_block_size 一起决定了一次 多数据块读的大小, 它们的乘积不能大于操作系统的最大 IO
大 小
文档评论(0)