设置 DB2 和 AIX 与条带技术匹配以提高 I/O 性能
2008-12-30 16:37:08 来源:WEB开发网核心提示: 在 OLTP 系统中,会存在大量小的并发的 I/O 请求,设置 DB2 和 AIX 与条带技术匹配以提高 I/O 性能(4),这时就需要考虑选择比较大的条带深度,使条带深度大于 I/O 大小就称为粗粒度条带(Coarse Grain Striping),在数据库普遍存在着大量、连续的 I/
在 OLTP 系统中,会存在大量小的并发的 I/O 请求。这时就需要考虑选择比较大的条带深度。使条带深度大于 I/O 大小就称为粗粒度条带(Coarse Grain Striping)。在高并行度系统中,条带深度为(n * page size),其中 n 为大于 1 的整数。通过粗粒度条带能实现最大的 I/O 吞吐量(一次物理 I/O 可以同时响应多个并发的逻辑 I/O)。大的条带深度能够使像全表扫描那样的预取读操作由一个磁盘驱动来响应,并提高预取读操作的性能。在 OLTP 系统中,为了避免一个逻辑 I/O 请求被多个物理 I/O 操作完成,条带深度就需要设置为两倍或者两倍以上于 DB2 页大小。例如,如果条带深度是物理 I/O 大小的 N 倍,对于大量并发 I/O 请求,我们可以保证最少有(N-1)/ N 的请求是由一块磁盘来完成。
在低并发度的 DSS 系统中,由于 I/O 请求一般是序列化的,为了避免出现 I/O 集中的热点磁盘,我们需要避免逻辑 I/O 只有一块磁盘处理。这时粗粒度条带就不适合了。我们应该选择小的条带深度,使一个逻辑 I/O 分布到多个磁盘上,从而实现 I/O 的负载均衡。这就叫细粒度条带。条带深度的大小必须为(n * page size),其中 n 为小于预取参数(prefetch size)大小的整数。
预取大小也是对条带化有影响的一个重要参数,它决定了 DB2 异步 I/O 的基本单位。首先我们要知道 DB2 的预取(prefetching)I/O 机制,在数据库普遍存在着大量、连续的 I/O 时候,预取可以极大的提高数据库数据读取的 I/O 性能(例如 DSS 系统)。
图 4 展示了 DB2 数据库的预取处理流程。
图 4.DB2 预取处理
更多精彩
赞助商链接