- 1、本文档共67页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
DB2故障诊断及调优
DB2故障诊断及调优v1.服务号842066
神州数码(中国)有限公司
IBM事业本部--技术服务部
调优建议
条带技术简介及应用
条带化技术是一种广泛使用的 I/O 负载均衡技术,可以在不增加额外硬件投入的情况下极大的提高 I/O 性能。但是在使用了这种技术的环境中,只有对数据库和操作系统的 I/O 处理有良好的规划和设置,使其与条带化技术相匹配,才能使 I/O 的性能达到最好。
当多个进程同时访问一个磁盘时,可能会出现磁盘冲突。大多数磁盘系统都对访问次数(每秒的 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 中对连续数据的读写都有最大的并发能力。
由于条带化在 I/O 性能问题上的优越表现,以致于在应用系统所在的计算环境中的多个层次或平台都涉及到了条带化的技术,如操作系统和存储系统这两个层次中都可能使用条带化技术。下图展示了这两个层次的 I/O 结构。
图 3.操作系统和存储系统两个层次的 I/O 结构
在操作系统的层次中,我们可以使用软件条带(如 LVM 中 LV 的条带来实现条带化技术)或硬件条带(如各种 RAID)。在存储系统层次中,目前市场上绝大部分产品都提供了各种各样的条带技术(如各种 RAID)。
条带化的设置
当使用 LVM 或者硬件条带化时,决定条带化效果的因素是条带深度(stripe depth)和条带宽度(stripe width):
条带深度指的是条带块的大小,也叫条带单元;
条带宽度指的是条带深度的产量或者一个条带分布的驱动数;
需要根据系统的 I/O 要求来合理的选择这些设置。对于数据库系统来说,比较合理的条带深度是从 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 中合理规划和设置条带相关参数
下面先看下影响 I/O 性能 DB2 数据库的相关参数:
页大小(page size):DB2 中的数据页大小,也决定了 DB2 一次单个 I/O 请求中的数据块的大小;
预读大小(prefetch size):在预取读时,一次读取数据块的数量不能大于操作系统的最大 I/O 大小(oracle 中是参数 block size);
排序堆(sortheap)和排序堆阈值(sheapthres) :内存中 sort 区域的大小
文档评论(0)