文章主要描述的是正确设置 DB2 数据库与 AIX 条带技术匹配来对 I/O 性能进行提高的实际操作步骤,我们大家都知道条带化技术,其是一种广泛使用的 I/O 负载均衡技术,可以在不增加额外硬件投入的情况下极大的提高 I/O 性能。
但是在使用了这种技术的环境中,只有对数据库和操作系统的 I/O 处理有良好的规划和设置,使其与条带化技术相匹配,才能使 I/O 的性能达到***。本文针对这个主题,以 DB2 数据库和 AIX 操作系统为例,介绍了如何规划和设置好相关的内容。
条带化技术是一种广泛使用的 I/O 负载均衡技术,可以在不增加额外硬件投入的情况下极大的提高 I/O 性能。但是在使用了这种技术的环境中,只有对数据库和操作系统的 I/O 处理有良好的规划和设置,使其与条带化技术相匹配,才能使 I/O 的性能达到***。本文针对这个主题,以 DB2 数据库和 AIX 操作系统为例,介绍了如何规划和设置好相关的内容。
下面我们分如下几个方面来介绍:
条带化技术介绍
在 DB2 中合理规划和设置DB2 数据库条带有关参数
在 AIX 中合理规划和设置条带有关参数
总结
条带化技术介绍
条带技术简介及应用
当多个进程同时访问一个磁盘时,可能会出现磁盘冲突。大多数磁盘系统都对访问次数(每秒的 I/O 操作,IOPS)和数据传输率(每秒传输的数据量,TPS)有限制。当达到这些限制时,后面需要访问磁盘的进程就需要等待,这时就是所谓的磁盘冲突。
避免磁盘冲突是优化 I/O 性能的一个重要目标,而 I/O 性能的优化与其他资源(如 CPU 和内存)的优化有着很大的区别 ,I/O 优化最有效的手段是将 I/O ***限度的进行平衡。这就需要将一个热点磁盘上的 I/O 访问负载分担到其他相对空闲的磁盘上,也就是 I/O 负载均衡。
在一些成熟的磁盘负载均衡技术出现之前,DBA 需要了解、预测各系统的 I/O 负载量,通过手工配置每个数据到不同存放位置以分担 I/O 负载来达到负载均衡的目的。
条带化技术就是一种自动的将 I/O 的负载均衡到多个物理磁盘上的技术,条带化技术就是将一块连续的数据分成很多小部分并把他们分别存储到不同磁盘上去。这就能使多个进程同时访问数据的多个不同部分而不会造成磁盘冲突,而且在需要对这种数据进行顺序访问的时候可以获得***程度上的 I/O 并行能力,从而获得非常好的性能。
很多操作系统、磁盘设备供应商、各种第三方软件都能做到条带化。通过条带化,DBA 可以很轻松的做到 I/O 负载均衡而无需去手工配置。
图 1 描述的是一个未经条带化处理的连续数据的分布,图 2 描述的是一个已经被条带化处理的连续数据的分布,从中比较,我们可以发现图 2 中对连续数据的读写都有***的并发能力。
图 1. 未经条带化处理的连续数据
图 2. 已经被条带化处理的连续数据
由于条带化在 I/O 性能问题上的优越表现,以致于在应用系统所在的计算环境中的多个层次或平台都涉及到了条带化的技术,如操作系统和存储系统这两个层次中都可能使用条带化技术。下图展示了这两个层次的 I/O 结构。
图 3.操作系统和存储系统两个层次的 I/O 结构
在操作系统的层次中,我们可以使用软件条带(如 LVM 中 LV 的条带来实现条带化技术)或硬件条带(如各种 RAID)。在存储系统层次中,目前市场上绝大部分产品都提供了各种各样的条带技术(如各种 RAID)。#p#
条带化的设置
当使用 LVM 或者硬件条带化时,决定条带化效果的因素是条带深度(stripe depth)和条带宽度(stripe width):
条带深度指的是条带块的大小,也叫条带单元;
条带宽度指的是条带深度的产量或者一个条带分布的驱动数;
需要根据系统的 I/O 要求来合理的选择这些设置DB2 数据库。对于数据库系统来说,比较合理的条带深度是从 256K 到 1M 。下面分析一下条带深度和条带宽度的影响因素。
条带深度
为了提高 I/O 效率,一次逻辑 I/O 请求转化成物理 I/O 请求后,应该让这些物理 I/O 分布到最多的物理磁盘上去,也就是每个物理磁盘处理的物理 I/O 最少,***只有一次 , 因而影响条带的一个重要因素就是一次逻辑 I/O 请求的大小。
此外,系统中 I/O 的并发度不同我们对条带的配置要求也不同。例如,在高并发度且逻辑 I/O 请求的大小都比较小的情况下,我们希望一块磁盘能同时响应多个 I/O 请求;而在那些存在大的逻辑 I/O 请求的低并发度系统中,我们可能就需要多块磁盘同时响应一个 I/O 请求。无论是一个磁盘还是多个磁盘响应 I/O 请求,我们的一个原则是让一次逻辑 I/O 能被物理设备一次处理完成。
条带宽度
正如我们前面所述,无论是一个还是多个磁盘响应一个逻辑 I/O,我们都希望物理设备只处理一次 I/O 。因而在确定了条带深度的基础上,我们需要保证条带宽度 >= I/O 请求的大小 / 条带深度。这样就能***程度的保证 I/O 请求的并发处理能力了。
此外,考虑到以后系统容量的扩充,我们也需要规划好条带宽度,以上的相关内容就是对设置 DB2 数据库和 AIX 与条带技术匹配以提高 I/O 性能的介绍,望你能有所收获。
完整内容的学习,请访问:
http://www.ibm.com/developerworks/cn/data/library/techarticles/dm-0812yuancg/
【编辑推荐】
- DB2 V8数据库系统转移的实现很简单!
- 在AIX环境下DB2许可证问题如何是好?
- DB2 For z/OS or OS/390性能如何正确管理?
- IBM DB2中新手要了解的东西有哪些?
- DB2数据库物化视图之MQT物化查询表如何操作?