设置 DB2 和 AIX 与条带技术匹配以提高 I/O 性能
2008-12-30 16:37:08 来源:WEB开发网上图中,我们发现,用户在获得 DB2 中的数据时有一个比较复杂的 I/O 处理过程:用户向数据库发出请求; DB2 异步的处理 I/O ;将请求提交给 I/O Server ;以预取大小为单位从存储中读取数据;在内存中处理数据;最后将请求的结果返回给用户。在这么多步骤的处理中,我们很明显的发现,访问物理存储的工作是由 I/O Server 以预取大小为单位实现的。所以在上述的过程中,在 DB2 数据库级别影响单次物理 I/O 最重要的因素就是预取大小。为了提高 I/O 的性能,就需要在设置 DB2 预取大小时必须与条带深度和条带宽度有较好的匹配。
首选要保证的就是预取的大小必须是条带深度的整数倍,其次预取大小最好是条带深度与条带宽度乘积的整数倍(当然预取大小还与 DB2 的其他参数有关,如 page size、extent size、容器数量等等,这里不一一讨论)。这样就可以使预取时候所执行的物理 I/O 被均衡的分布所有的物理存储中。
另外,I/O 过程中,你无法保证 DB2 数据库的页的边界能与条带单元的大小对齐。如果条带深度大小和 DB2 的页大小完全相同,而它们的边界没有对齐的话,那么就会存在大量的一个单独的小的 I/O 请求在两块磁盘上完成。
如今大多数 LVM 都支持在线动态增加磁盘。也就是在磁盘容量不足时,我们可以随时将新磁盘加入到一个已经使用的逻辑卷中。这样的话,我们在设置逻辑卷时就可以简单地将所有磁盘都归入到一个卷中去。
如果你的条带宽度设置得比较小,就需要估算出你的各个数据库表空间容器的 I/O 负载,并根据负载量不同将他们分别部署到不同卷上一分担 I/O 负载。
在 AIX 中合理规划和设置条带相关参数
操作系统最大 I/O 大小:决定了一次单个的 I/O 请求的大小上限,不同的操作系统有不同的参数,AIX 系统是卷组的 LTG(Logical Track Group)参数(HP-UX 是参数 max_I/O_size);
更多精彩
赞助商链接