存储IO设计和性能调优.pdf_第1页
存储IO设计和性能调优.pdf_第2页
存储IO设计和性能调优.pdf_第3页
存储IO设计和性能调优.pdf_第4页
存储IO设计和性能调优.pdf_第5页
已阅读5页,还剩8页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

存储 I O 设计和性能调优 对于任何程序的运行来说 最慢 最花费时间的操作实际上是从磁盘中检索数据 这主 要缘于磁盘 I O 访问中存在的物理机械过程 磁头旋转和寻道 尽管磁盘存储技术在最近 几年取得了极大的进步 但磁盘的旋转速度却没有太大的提高 您必须清楚这样一个事实 在一定条件下 RAM 访问仅需要大概 540 个 CPU 时钟周期 而磁盘访问则需要花费大概 20 000 000 个 CPU 时钟周期 很明显 系统中访问数据最薄弱的环节就是磁盘 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 设计总结 1 1 存储基本概念存储基本概念 关于存储的概念太多 许多已经超出了本书的讨论范围 本章主要讲解最常见的几个概 念 它们是我们进行存储 I O 设计所必须掌握的 1 11 1 硬盘硬盘 硬盘处于整个存储系统的最底层 核心的业务数据通常都存放在硬盘上 我们从硬盘上 读取一次 I O 要花费的时间如下 硬盘上一次 I O 时间 磁盘寻道时间 磁头旋转到特定扇区时间 传输时间 延迟 图 2 1 所示的硬盘 I O 传输图中标识了磁头在不同位置的寻道时间 衡量一个磁盘的 I O 能力有如下几个指标 图 2 1 磁盘 I O 传输图 硬盘的转速 Rotational Speed 也就是硬盘电机主轴的转速 转速是决定硬盘内部传 输率的关键因素之一 它的快慢在很大程度上影响了硬盘的速度 同时 转速的快慢也是区 分硬盘档次的重要标志之一 硬盘的主轴马达带动盘片高速旋转 产生浮力使磁头飘浮在盘 片上方 要将所要存取资料的扇区带到磁头下方 转速越快 等待时间也就越短 因此 转 速在很大程度上决定了硬盘的速度 目前市场上常见的硬盘转速一般有 5400rpm 7200rpm 和 15000rpm 理论上 转速越快越好 因为较高的转速可缩短硬盘的平均寻道时间和实际 读写时间 但是转速越快发热量越大 不利于散热 现在的主流硬盘转速一般为 15000rpm 以上 平均寻道时间 Average Seek Time 指硬盘在盘面上移动读写头至指定磁道寻找相应 目标数据所用的时间 它描述硬盘读取数据的能力 单位为毫秒 当单碟片容量增大时 磁 头的寻道动作和移动距离减少 从而使平均寻道时间减少 加快硬盘速度 平均延迟时间 Average Latency Time 指当磁头移动到数据所在的磁道后 然后等 待所要的数据块继续转动到磁头下所用的时间 平均访问时间 Average Access Time 指磁头找到指定数据的平均时间 通常是平均 寻道时间和平均延迟时间之和 平均访问时间最能够代表硬盘找到某一数据所用的时间 越 短的平均访问时间越好 为什么要讲硬盘呢 因为 DB2 数据库在工作时 一条 SQL 语句在经过优化器编译时 优 化器会读取统计信息 数据库配置参数和相关硬件信息来为该条 SQL 语句生成最优的执行计 划 其中的硬件信息包括表空间的 transrate 和 overhead 这两个参数的计算就是由硬盘 的相关属性来决定的 它们计算公式如下 transrate 1 传送速率 1000 1024000 4096 假设用 4KB 页大小 overhead 平均寻道时间 1 磁盘转速 60 1000 2 而平均寻道时间 磁盘旋转速度和传送速率是由硬盘本身决定的 所以我们必须做合理 的存储 I O 设计以使优化器更好地工作 1 21 2 磁盘阵列技术磁盘阵列技术 RAID 的全称是独立磁盘冗余阵列 Redundant Array of Independent Disks 它通过 将多个相对比较便宜的磁盘组合起来 并相互连接 同时都连到一个或多个计算机上 以组 成一个磁盘组 从而使其性能和容量达到或超过一个价格更昂贵的大型磁盘 20 年来 RAID 推出了一系列级别 包括 RAID 0 RAID 1 RAID 2 RAID 3 RAID4 RAID 5 以及各种组 合如 RAID 1 0 等 其中应用最广泛的是 RAID5 和 RAID10 RAID 1 0 RAID 0 能提供更好的性能 RAID 1 能提供最佳的数据保护 如果把两者结合在一起 就能同时提供高性能和数据保护 但这也会同时提高磁盘阵列造价 RAID 5 RAID 5 不做全磁盘镜像 但它会对每一个写操作做奇偶校验计算并写入奇偶校验数据 奇偶校验磁盘避免了像 RAID 1 那样完全重复写数据 当一个磁盘失效 校验数据被用来重 建数据 从而保证系统不会崩溃 为避免磁盘瓶颈 奇偶校验和数据都会被分布到阵列中的 各个磁盘 尽管读的效率提高了 但是 RAID 5 需要为每个写操作做奇偶校验 因此它的写 的效率很差 1 31 3 存储的存储的 CacheCache 高端存储系统中除了要有高性能 高扩展性的结构外 Cache 的设计将直接影响到存储 系统的性能表现和可靠性 Cache 的主要作用是什么呢 作为缓存 Cache 的作用具体体现在读与写两个不同的方 面 作为写 一般存储阵列只要求数据写到 Cache 就算完成了写操作 当写 Cache 的数据积 累到一定程度 阵列才把数据刷到磁盘 这样可以实现批量的写入 所以 阵列的写是非常 快速的 至于 Cache 数据的保护 一般都依赖于镜像与电池 或者是 UPS Cache 在读数据方面的作用同样不可忽视 因为如果所要读取的数据能在 Cache 中命中 的话 将大大减少磁盘寻道所需要的时间 因为磁盘从开始寻道到找到数据 一般都在 6ms 以上 而这个时间 对于那些密集型 I O 的应用可能不是太理想 但是 如果能在 Cache 保存的数据中命中 一般响应时间则可以缩短在 1ms 以内 存储的 Cache 大小对整个 I O 性能的影响是非常大的 1 41 4 IOPSIOPS IOPS 即 I O Per Second 也就是每秒进行读写 I O 操作的次数 它是衡量存储性能 的一个重要指标 1 51 5 网络存储技术网络存储技术 FC SAN Storage Area Network 存储区域网 是一个高速的子网 这个子网中的设备可 以从您的主网卸载流量 通常 SAN 由 RAID 阵列连接光纤通道 Fibre Channel 组成 SAN 同服务器和客户机的数据通信是通过 SCSI 命令而非 TCP IP 来实现的 数据处理是 块级 block level SAN 通过特定的互联方式连接若干台存储服务器而组成一个单独的数据网络 提供企业 级的数据存储服务 如图 2 2 所示 SAN 是一种特殊的高速网络 连接网络服务器和诸如 大磁盘阵列或备份磁带库的存储设备 SAN 置于 LAN 之下 而不涉及 LAN 利用 SAN 不仅 可以提供大容量的存储数据 而且地域上可以分散 缓解了大量数据传输对局域网的影响 SAN 的结构允许任何服务器连接到任何存储阵列 不管数据存放在哪里 服务器都可直接存 取所需的数据 图 2 2 SAN 存储示意图 NAS 是 Network Attached Storage 网络附加存储 的简称 在 NAS 存储结构中 存储系 统不再通过 I O 总线附属于某个服务器或客户机 而是直接通过网络接口与网络直接相连 由用户通过网络访问 它是连接到一个计算机网络的文件层的数据存储 可以为不同网络的 客户端提供数据存储服务 NAS 的硬件与传统的专用文件服务器相似 它们的不同点在于软 件端 NAS 中的操作系统和其他软件只提供数据存储 数据访问功能 以及对这些功能的管 理 与传统以服务器为中心的存储系统相比 数据不再通过服务器内存转发 而是直接在客 户机和存储设备间传送 服务器仅起控制管理的作用 2 2 存储架构存储架构 2 12 1 存储存储 I OI O 处理过程处理过程 了解一个典型的 I O 流动图对于我们定位 I O 性能瓶颈是非常重要的 下面我们来看一 个典型的 I O 流动图 如图 2 3 所示 图 2 3 一个典型的 I O 流动图 提示 提示 Core Director 可以智能化地自动实现负载平衡和流量控制 在 I O 处理过程中 要保 证 HBA 卡的网络带宽 光交换机端口带宽 存储的前端端口 后端端口的速度匹配 不要因 为某个瓶颈而导致 木桶效应 2 22 2 应用系统应用系统 I OI O 流动图流动图 我们举一个某移动公司营账系统的例子 该系统比较复杂 那么我们来看看该系统的一 个整体 I O 流动图 如图 2 4 所示 点击查看大图 图 2 4 I O 流动图 图 2 4 展示了该移动公司营账应用系统的数据处理层次图 在这个数据处理层次中 我 们可以首先简单地将其划分为三个较大的层次 用户层 应用层 数据层 用户层 用户负责发出对数据的请求 应用层 提供各种满足要求的应用 对用户的请求向数据层传递 同样负责将数据层获 得的数据处理后发送给用户 数据层 负责数据的管理 以及最终的数据 I O 对于性能的问题 应用层和数据层都需要引起我们的关注 这两者都会对整个系统的性 能产生较大的影响 假设最终用户在前台发出了一个查询交易 该交易其实就是一条 select 语句 那么该 请求通过 http https 发送到 Web Server 服务器 Web Server 接收到该请求后再把该请求 转发给 Application Server 在这个阶段我们要确保 Web Server 方面不存在瓶颈 否则它 无法及时地把最终用户请求转发 会引起交易请求阻塞 Application Server 接收到请求 后 通过应用程序业务逻辑去数据库中检索记录 在该阶段 我们要确保 Application Server 不存在瓶颈 不会阻塞到数据库的请求 否则我们要进行 Application Server 调优 当这 个请求到达 DB Server 后 数据库优化器会为该 SQL 语句适于语法检查 语义分析 权限检 查 查询重写等 之后会制订一个最优的访问计划 access plan 在该计划中决定用什么 索引 用什么扫描方式 访问表的顺序和连接方式等 假设优化器为这条 SQL 语句确定的是 全表扫描方式 那么它首先判断数据库 bufferpool 中是否有它请求的数据 如果有 就直 接从内存读取 这叫逻辑读 否则就要从硬盘读 那么要首先判断该表在哪个表空间中 如 果该表空间采用的是裸设备 lv 那么它会去读逻辑卷 lv 逻 辑 卷 lv 是在逻辑卷管理器 lvm 之上的 而 lvm 又在操作系统之上 在操作系统和存储之间往往还会有一个存储的多 路径通道软件 例如 AIX 上的 MP I O Driver EMC 的 power path 日 立 的 HiCommand Dynamic Link Manager HDLM 等 可以实现动态负载均衡和流量控制 在多路径通道软件之下是存储 供应商的设备驱动 Device Driver 主机服务器通过 HBA 卡和光纤交换机连接 光纤交换 机和存储的前端连接 存储的前端再通过存储的 Cache 连接后端的物理磁盘 这就是一个磁 盘 I O 的处理过程 在上面的 I O 流动中 每个环节都有可能出现性能问题 所以大家要能 够理解这个 I O 过程 在出现性能问题时 能快速地找出是哪个环节引起了性能瓶颈 2 32 3 RAID IOPSRAID IOPS 磁盘访问时间 磁盘寻道时间 延迟 延迟时间 1minute RPM 2 决定 IOPS 的主要因素在于阵列的算法 Cache 命中率 以及磁盘个数 阵列的算法会 由于阵列的不同而不同 例如在 hds usp 上面 可能因为 ldev lun 存在队列或者资源限制 而导致单个 ldev 的 IOPS 上不去 所以我们在进行存储 I O 设计时 必须结合我们使用的存 储产品去了解这个存储的一些算法规则与限制 Cache 的命中率取决于数据的分布 Cache size 的大小 数据访问的规则 以及 Cache 的算法 如果完整的讨论下来 这里将变得很复杂 超出了本书的讨论范围 我这里只强调 一个 Cache 的命中率 对于一个阵列 读 Cache 的命中率越高越好 这一般表示它可以支持 更多的 IOPS 为什么这么说呢 这就与我们下面要讨论的硬盘 IOPS 有关系了 硬盘的限制 每个物理硬盘能处理的 IOPS 是有限制的 如 10 K rpm 15 K rpm ATA 10M s 13M s 8M s 10 K rpm 15 K rpm ATA 100IOPS 150IOPS 50IOPS 同样 如果一个阵列有 120 块 15K rpm 的光纤硬盘 那么 它能撑的最大 IOPS 为 120 150 18000 这个为硬件限制的理论值 如果超过这个值 硬盘的响应可能会变得非常 缓慢而不能正常提供业务 在 RAID5 与 RAID10 上 读 IOPS 没有差别 但是 相同的业务写 IOPS 最终落在磁盘 上的 IOPS 却是有差别的 而我们评估的正是磁盘的 IOPS 如果达到了磁盘的限制 性能肯 定是上不去了 我们在第 1 章中某移动公司营账系统的 IOPS 是 10000 读 CACHE 命中率是 30 读 IOPS 为 60 写 IOPS 为 40 磁盘个数为 120 我们分别计算在 RAID5 与 RAID10 的情况下 每 个磁盘的 IOPS 为多少 RAID5 单块盘的 IOPS 10000 1 0 3 0 6 4 10000 0 4 120 4200 16000 120 168 这里的 10000 1 0 3 0 6 表示是读的 IOPS 比例是 0 6 除掉 CACHE 命中 实际只有 4200 个 IOPS 而 4 10000 0 4 表示写的 IOPS 因为每一个写 在 RAID5 中 实际发生 了 4 个 IO 所以写的 IOPS 为 16000 个 为了考虑 RAID5 在写操作的时候 那 2 个读操作也 可能发生命中 所以更精确的计算为 单块盘的 IOPS 10000 1 0 3 0 6 2 10000 0 4 1 0 3 2 10000 0 4 120 4200 5600 8000 120 148 计算出来单个盘的 IOPS 为 148 个 基本达到磁盘极限 RAID10 单块盘的 IOPS 10000 1 0 3 0 6 2 10000 0 4 120 4200 8000 120 102 可以看到 因为 RAID10 对于一个写操作 只发生 2 次 IO 所以 同样的压力 同样的 磁盘 每个盘的 IOPS 只有 102 个 还远远低于磁盘的极限 IOPS 2 42 4 RAID 10RAID 10 和和 RAID 5RAID 5 的比较的比较 在我们考虑存储I O设计时 到底用RAID 10还是选择RAID5呢 下面我们来做个比较 为了方便对比 这里拿同样多驱动器的磁盘来做对比 RAID10 选择 2D 2D 的 RAID 方案 RAID5 选择 3D 1P 的 RAID 方案 如图 2 5 和 2 6 所示 点击查看大图 图 2 5 RAID 10 2D 2D 点击查看大图 图 2 6 RADI 5 3D 1P 1 安全性方面的比较 其实在安全性方面 毋庸置疑 肯定是 RAID10 的安全性高于 RAID5 我们可以通过简 单的分析来得出此结论 当盘 1 损坏时 对于 RAID10 只有当盘 1 对应的镜像盘也损坏 才会导致 RAID 失效 但是对于 RAID5 剩下的 3 块盘中 任何一块盘出现故障 都将导致 RAID 失效 在恢复的时候 RAID10 恢复的速度也快于 RAID5 2 空间利用率的比较 RAID10 的利用率是 50 RAID5 的利用率是 75 硬盘数量越多 RAID5 的空间利用率 越高 3 读写性能方面的比较 主要分析如下三个操作 读 连续写 离散写 提示 存储的 Cache 我们已经在 2 1 3 中讲述 因为这三个操作跟 Cache 有很大的关系 1 读操作方面的性能差异 RAID10 可供读取有效数据的磁盘个数为 4 RAID5 可供读取有效数据的磁盘个数也为 4 个 校验信息分布在所有的盘上 所以两者在读方面的性能应该是基本一致的 2 连续写方面的性能差异 在连续写操作过程中 如果有写 Cache 存在 并且算法没有问题的话 RAID5 比 RAID10 甚至会更好一些 虽然也许并没有太大的差别 这里要假定存储有一定大小 足够的写 Cache 而且计算校验的 CPU 不会出现瓶颈 因为这个时候的 RAID 校验是在 Cache 中完成 如 4 块盘的 RAID5 可以先在内存中计 算好校验 然后同时写入 3 个数据 1 个校验 而 RAID10 只能同时写入 2 个数据 2 个镜像 如图 2 7 所示 4 块盘的 RAID5 可以在同时间写入 1 2 3 到 Cache 并且在 Cache 计 算好校验之后 这里假定是 6 同时把这 4 个数据写到磁盘 而 4 块盘的 RAID10 不管 Cache 是否存在 写的时候 都是同时写 2 个数据或 2 个镜像 点击查看大图 图 2 7 连续写 根据前面对缓存原理的介绍 写 Cache 是可以缓存写操作的 等到缓存写数据积累到一 定时期再写到磁盘 但是 写到磁盘阵列的过程是迟早也要发生的 所以 RAID5 与 RAID10 在连续写的情况下 从缓存到磁盘的写操作速度会有较小的区别 不过 如果不是连续性的 强连续写 只要不达到磁盘的写极限 差别并不是太大 3 离散写方面的性能差异离散写方面的性能差异 例如DB2 数据库每次写一个数据块的数据 如4KB或8KB 由于每次写入的量不是很大 而且写入的次数非常频繁 因此联机日志看起来会像是连续写 但是因为不保证能够填满 RAID5 的一个条带 比如 32KB 保证每张盘都能写入 所以很多时候更加偏向于离散写入 写 入到已存在数据的条带中 离散写的时候 RAID5 与 RAID10 的工作方式有什么不同 查看图 2 8 假定要把一个数 字 2 变成数字 4 那么对于 RAID5 实际发生了 4 次 IO 先读出 2 与校验 6 可能发生读命 中 然后在 Cache 中计算新的校验 写入新的数字 4 与新的校验 8 对于 RAID10 同样的操作 最终 RAID10 只需要 2 个 IO 而 RAID5 需要 4 个 IO 图 2 8 离散写 这里我忽略了 RAID5 在那两个读操作的时候 可能会发生读命中操作的情况 也就是说 如果需要读取的数据已经在 Cache 中 可能是不需要 4 个 IO 的 这也证明了 Cache 对 RAID5 的重要性 不仅仅是计算校验需要 而且对性能的提升尤为重要 当然 并不是说 Cache 对 RAID10 就不重要了 因为写缓冲 读命中等 都是提高速度 的关键所在 只不过 RAID10 对 Cache 的依赖性没有 RAID5 那么明显而已 4 磁盘的磁盘的 IOPS 对比对比 对空间利用率要求较高 而对安全性要求不是特别高的大文件存储的系统 采用 RAID5 比较好 相反 安全性要求很高 不计成本 小数据量频繁写入的系统采用 RAID10 的方式 比较好 根据我的经验与分析 小 I O 的数据库类型操作 如 ERP 等应用 建议采用 RAID10 而大型文件存储 数据仓库 如医疗 PACS 系统 视频编辑系统 从空间利用的角度 建议 采用 RAID5 在一个实际的案例中 一个恢复压力很大的 standby 这里主要是写 而且是小 IO 的写 采用了 RAID5 的方案 发现性能很差 通过分析 每个磁盘的 IOPS 在高峰时期 快达到 200 了 导致响应速度非常之慢 后来改造成 RAID10 就避免了这个性能问题 每个磁盘的 IOPS 降到了 100 左右 所以 了解 RAID5 和 RAID10 原理 对我们根据应用系统的特点来做存储 I O 设计 从而保证性能非常重要 3 3 存储相关性能调整案例存储相关性能调整案例 下面我们举一个实际的案例来说明在存储这个层面 由于配置参数不合理而导致的性能 问题 客户应用系统环境 存储 日立存储 HDS 操作系统 IBM AIX 数据库 DB2 V8 1 9 多路径通道软件 HDLM 提示 HDLM Hitachi Dynamic Link Manager 是 HDS 公司提供的安装在主机端的存储通道传输 管理工具软件 HDLM 提供主机到存储系统的 I O 通道负载平衡和故障切换功能 增强了主 机系统的数据可得性 以下是性能调整报告 2007 09 23 8 点 10 分左右 CSR PROD 节点 DB2 数据库出现挂起 同时操作系统有大 量 LVDD 报错 问题描述 问题描述 调整过程 调整过程 2007 09 23 09 15 赶到现场处理 部分磁盘不可用 利用 fsck 修复文件系统 2007 09 23 10 00 通过 HACMP 挂起共享磁盘和应用 2007 09 24 20 00 调整日立 HDS 的 HDLM 软件的参数 hd pbuf cn 将其最大请求数从 16384 改为 65536 2007 09 30 18 00 升级 HBA 卡的微码到最新 91A5 2008 10 01 20 00 重新启动系统 调整结果 调整结果 最后通过调整日立 HDS 存储层面的 hd pbuf cn 参数 解决了 CSR 系统性能问题 因为这个 案例还需要结合操作系统方面的调整 仅仅单独调整存储方面还不能完全解决问题 所以这个 案例我们暂时先讲到这里 在第 3 章我们讲完操作系统后 再详细讲解这个案例 详细内容请 参见第 3 章的 3 4 3 pbuf 设置不合理导致性能问题调整案例 4 4 存储存储 I OI O 设计总结设计总结 在进行存储 I O 设计时 我们可以参考以下设计原则 请确保您的数据均匀地分布在所有的物理磁盘中 如果您的数据仅位于几

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论