首页 祥解磁盘 io 性能 对数据库的影响[宝典]

祥解磁盘 io 性能 对数据库的影响[宝典]

举报
开通vip

祥解磁盘 io 性能 对数据库的影响[宝典]祥解磁盘 io 性能 对数据库的影响[宝典] 祥解磁盘 IO 性能 对数据库的影响 祥解磁盘 I/O 性能 对数据库的影响 如果将 SQL Server 配置成仅包含几个千兆字节 (GB) 的数据,且不承担繁重的读或写活动,便没有太大的必要关注磁盘 I/O 主题,以及在硬盘之间平衡 SQL Server I/O 活动以获取最佳性能。但是要建立包含成百上千 GB 字节的数据且/或承担繁重的读和/或写活动的大型 SQL Server 数据库,就有必要在多个硬盘之间平衡负荷,以配置最佳的 SQL Server 磁盘 ...

祥解磁盘 io 性能 对数据库的影响[宝典]
祥解磁盘 io 性能 对数据库的影响[宝典] 祥解磁盘 IO 性能 对数据库的影响 祥解磁盘 I/O 性能 对数据库的影响 如果将 SQL Server 配置成仅包含几个千兆字节 (GB) 的数据,且不承担繁重的读或写活动,便没有太大的必要关注磁盘 I/O 主 快递公司问题件快递公司问题件货款处理关于圆的周长面积重点题型关于解方程组的题及答案关于南海问题 ,以及在硬盘之间平衡 SQL Server I/O 活动以获取最佳性能。但是要建立包含成百上千 GB 字节的数据且/或承担繁重的读和/或写活动的大型 SQL Server 数据库,就有必要在多个硬盘之间平衡负荷,以配置最佳的 SQL Server 磁盘 I/O 性能。 标称的磁盘传输率与 SQL Server 的关系 优化数据库性能最重要的一个方面是调整 I/O 性能。SQL Server 当然也不例外。除非 SQL Server 运行在一台具有足够大的内存可容纳整个数据库的机器上,否则 I/O 性能将由磁盘 I/O 子系统处理 SQL Server 数据读写的速度来决定。 请记住下面的经验法则:标准的 Wide Ultra SCSI-3 硬盘每秒钟可为 Windows 和 SQL Server 提供 75 个不连续(随机)的 I/O 操作和 150 个连续的 I/O 操作。这种硬盘的标称传输率在 40 MB/秒左右。请记住更有可能限制数据库服务器的传输率是每秒钟 75/150 I/O,而不是 40 MB/秒。具体演算如下: (每秒 75 次随机 I/O 操作)X(8 KB 传输)= 每秒 600 KB 上面的计算 关于同志近三年现实表现材料材料类招标技术评分表图表与交易pdf视力表打印pdf用图表说话 pdf 示如果在给定的硬盘上进行严格的随机读或写 SQL Server 操作(单页读和写),有可能该硬盘最高只能达到每秒 600 KB(即每秒 0.6 MB)的处理能力。这比驱动器标定的每秒 40 MB 的 I/O 处理能力要低得多。SQL Server 工作线程、Graphical ShowPlan 和 LazyWrtier 执行 8 KB 传输量的 I/O。 (每秒 150 个连续 I/O 操作)X(8 KB 传输)= 每秒 1,200 KB 上面的计算表示如果在给定的硬盘上进行严格的连续读或写 SQL Server 操作(单页读或写),有可能在该硬盘上达到最高每秒 1,200 KB(即每秒 1.2 MB)的处理能力。 (每秒 75 个随机 I/O 操作)X(64 KB 传输)= 每秒 4,800 KB (4.8 MB) 上面的计算表示预读的最次 方案 气瓶 现场处置方案 .pdf气瓶 现场处置方案 .doc见习基地管理方案.doc关于群访事件的化解方案建筑工地扬尘治理专项方案下载 (假定进行的都是随机 I/O)。请注意即便在完全进行随机 I/O 的情况下,64 KB 传输量仍然可以提供比单页传输率(0.6 和 1.2 MB/s)要好得多的 I/O 磁盘传输率 (4.8 MB/s): (每秒 150 个连续 I/O 操作)X(64 KB 传输)= 每秒 9,600 KB (9.6 MB) 上面的计算表示如果在给定的硬盘上进行严格的连续读或写 SQL Server 操作,有可能在该硬盘上达到最高每秒 9.6 MB 的 I/O 处理能力。这比随机 I/O 的情况要好得多。SQL Server Read-Ahead Manager 以 64 KB 传输率执行磁盘 I/O,并试图安排读操作,以便连续地(通常也称为“按磁盘顺序”)进行预读扫描。因为 Read-Ahead Manager 的目的是连续地执行 I/O 操作,而进行页拆分可能导致扩展盘区的读取不连续,这就是要消除和防止页拆分的原因。 Log Manager 最大可连续地将 32 KB 字节写入日志文件。 连续和不连续的磁盘 I/O 操作 连续和不连续这两个词在硬盘操作中用得非常多。有必要花一些时间来解释一下这两个词对于硬盘的意义。一个硬盘由一组驱动器盘片组成。每个驱动器盘片都通过一组带读/写磁头的取数臂为读/写操作提供服务,这些读/写磁头可以在盘片之间移动,读取驱动器盘片中的信息或者将数据写入盘片。就 SQL Server 而言,应记住硬盘的两个重要特性: 读/写磁头和相关的磁盘取数臂需要移动才能在 SQL Server 和 Windows 所要求的硬盘盘片的位置上进行查找和操作。如果数据所在的硬盘盘片的位置不连续,硬盘驱动器要花多得多的时间才能将磁盘取数臂和读/写磁头移动到所有需要的硬盘盘片位置。如果所需要的数据全部位于硬盘盘片上的连续物理扇区,情况则相反,磁盘取数臂和读/写磁头只需进行很小的移动就能完成所需磁盘 I/O 操作。连续和不连续的情况下所花的时间有很大的差异,每个不连续的数据查找大约要花 50 毫秒,而连续的数据查找则只需大约 2-3 毫秒。请注意这些值是粗略估计出来的,具体值将取决于不连续的数据在磁盘上分布的疏密、硬盘盘片的旋转速度 (RPM) 以及硬盘的其它物理属性。主要要记住的一点是连续 I/O 有益于 SQL Server 性能。 本文已提到标准的硬盘支持每秒 75 个不连续的 I/O 和每秒 150 个连续的 I/O。要记住的重要一点是读或写 8KB 的时间与读或写 64 KB的时间几乎相同。在 8 KB 到 64 KB 范围之内,单个磁盘 I/O 传输操作所花的时间主要是磁盘取数臂和读/写磁头运动的时间。因此,从数学上来讲,当需要传输 64 KB 以上的 SQL 数据时,尽可能地执行 64 KB 磁盘传输是有益的,因为 64 KB 传输基本上与 8 KB 传输一样快,而每次传输的 SQL Server 数据是 8 KB 传输的 8 倍。请记住 Read-Ahead Manager 以 64 KB 字节片(也称为 SQL Server 扩展盘区)执行磁盘操作。Log Manager 也以较大的 I/O 传 输量来执行连续写操作。要记住的主要事项是充分利用 Read-Ahead Manager,并将 SQL Server 日志文件与其它非连续存取的文件分开,以有效提高 SQL Server 的性能。 想详细了解物理硬盘的读者可以参考 Compaq 公司的白皮 关于书的成语关于读书的排比句社区图书漂流公约怎么写关于读书的小报汉书pdf “Disk Subsystem Performance and Scalability(磁盘子系统性 能和可伸缩性)”,其位置将在本文结尾部分的“查找其它资料”中提到。 磁盘 I/O 传输率/RAID 控制器传输率/PCI 总线带宽 标准的硬盘提供的最大传输率是每秒 40 MB 或每秒 75 个不连续磁盘传输/150 个连续磁盘传输。 标准 RAID 控制器标称的传输率大约为每秒 40 MB 或(非常接近)每秒 2,000 个磁盘传输。外围元件互连 (PCI) 总线的标定传输率大约为每秒 133 MB 或更高。设备实际的传输率将与标称的传输率不同,但这个问题对于我们此处的讨论并不重要。重要的是了解如何用这些传输率来粗略估算与每个 RAID 控制器相联的硬盘的数量,以及一个 PCI 总线连接多少个驱动器和 RAID 控制器不至于出现 I/O 瓶颈问题。 在前面的“标称的磁盘传输率和 SQL Server 的关系”部分,已计算出每秒钟最多可以从硬盘读出或写入硬盘的 SQL Server 数据量为 9.6 MB。假定 RAID 控制器每秒钟可处理 40 MB,粗略地计算可与一个 RAID 控制器相联的硬盘数目应为 40 除以 9.6, 答案 八年级地理上册填图题岩土工程勘察试题省略号的作用及举例应急救援安全知识车间5s试题及答案 约等于 4。这表示当 SQL Server 只进行 64 KB 的连续 I/O 时,可与一个控制器相联的驱动器最多为 4 个。类似地,前面已计算出对于 64 KB 的全部不连续 I/O,从硬盘到控制器的最大数据传输率为 4.8 MB/秒。40 MB/秒除以 4.8 MB/秒约等于 8。也就是说,在不连续的 64 KB 方案中,与单个控制器相联的硬盘最多为 8 个。随机 8 KB 数据传输方案需要的驱动器最多。40 除以 0.6 约等于 66,这表示需要 66 个驱动器才能使进行 100% 随机 8 KB 读和写的 RAID 控制器饱和。这不是实际可行的方案,因为预读和日志记录所使用的传输量大于 8 KB,并且 SQL Server 不可能执行 100% 的随机 I/O。 另一种计算可与 RAID 控制器相联的驱动器的数目的方法是从每秒的磁盘传输出发,而不是从每秒的字节数出发。如果某个硬盘每秒可进行 75 个不连续的(随机)I/O,理论上 26 个联在一起的驱动器每秒钟可产生 2,000 个不连续的 I/O,足以达到单个 RAID 控制器的最大 I/O 处理能力。另一方面,只需 13 个硬盘联在一起就能产生每秒 2,000 个连续 I/O,从而使 RAID 控制器以最大吞吐量运行,这是因为单个硬盘每秒可以承受 150 个连续 I/O。 现在来讨论 PCI 总线。请注意 RAID 控制器和 PCI 总线瓶颈没有与硬盘有关的 I/O 瓶颈常见。但是为便于说明,我们假定与某个 RAID 控制器相联的一组硬盘足够忙,以至于每秒有 40 MB 的吞吐量通过控制器。下一个问题是“PCI 总线上联多少个 RAID 控制器比较安全,不会引发 PCI 总线 I/O 瓶颈问题,”要进行粗略估算,可以用 PCI 总线的 I/O 处理容量除以 RAID 控制器的 I/O 处理容量:133 MB/秒除以 40 MB/秒约等于 3,这表示一个 PCI 总线上可以联大约 3 个 RAID 控制器。请注意多数大型服务器带有多个 PCI 总线,这使得单个服务器上可以安装更多的 RAID 控制器。 这些计算有助于说明组成磁盘 I/O 子系统的各个组件(硬盘、RAID 控制器和 PCI 总线)的传输率的关系,但不应按字面理解。这是因为这些计算假定全部进行连续数据存取或不连续数据存取,而这在生产数据库服务器环境中几乎是不可能的。实际上,通常既有连续 I/O,也有不连续 I/O,既有 8 KB I/O,也有 64 KB I/O。还有其它因素使得很难准确估算一次通过一组硬盘的 I/O 操作数。RAID 控制器可用的插件读/写高速缓存增加了驱动器组可有效产生的 I/O 数。既然很难准确估算出 SQL Server 环境所需要的 8 KB 和 64 KB I/O 的数,所以同样也很难估算出所增加的 I/O 数。 但是我们希望能够通过这部分让您了解所标定的传输率对于 SQL Server 的实际意义。 RAID 当缩放超过几十亿字节数据的数据库时,对 RAID(廉价冗余磁盘阵列)技术和它与数据库性能的关系有一个基本了解是很重要的。 RAID 的优点是: 性能:硬件 RAID 控制器将 Windows 和应用程序(如 SQL Server)的所有数据读/写进行切片(通常为 16-128 KB),这些切片分布在所有参与 RAID 阵列的磁盘中。按类似的方法在物理驱动器之间拆分数据具有在所有参与 RAID 阵列的物理硬盘之间平均分配读/写 I/O 工作负荷的效果。这样可提高磁盘 I/O 的性能,因为作为整体参与 RAID 阵列的硬盘保持同等繁忙程度,而不会使某些磁盘由于 I/O 请求分配的不平均而成为瓶颈。 容错: RAID 用两种方法保护硬盘不出现故障,并防止由于故障而出现数据丢失:镜像和奇偶信息。 “镜像”通过将信息写入两组驱动器来实现。镜像的驱动器两侧各有一组信息。如果在使用镜像时一个驱动器出现故障,可以置换出现故障的驱动器,然后从镜像集的另一侧与出现故障的驱动器对应的驱动器中重建数据,从而将出现故障的驱动器中的数据恢复过来。 大多数 RAID 控制器可以置换出现故障的驱动器,并在 Windows 和 SQL Server 联机时从镜像驱动器的另一侧重建数据(通常称为可“热插拔”的驱动器)。镜像的一个优点是当要求容错时,它是最佳的 RAID 选项。在使用镜像的情况下,每个 SQL Server 写操作都需要两个磁盘 I/O 操作,即镜像集一边一个。镜像的另一个优点是可提供比奇偶校验 RAID 实施方案更高的容错能力。镜像最少可承受一个出现故障的驱动器,而且即便当镜像集中的驱动器有一半出现故障时,也可以坚持下来,而无须迫使系统管理员关闭服务器,然后从备份文件中恢复数据。镜像的缺点是成本高。镜像的磁盘成本高在要为所有需要一个磁盘的数据准备一个磁盘。RAID 1 和它的混合 RAID 0+1(有时也称为 RAID 10 或 0/1)就是通过镜像来实施的。 “奇偶校验”的实施方法是,先计算写入磁盘的数据的恢复信息,然后将此奇偶信息写入组成 RAID 阵列的其它驱动器。如果某个驱动器失败,将新的驱动器插入 RAID 阵列,然后取出写在其它驱动器上的恢复信息(奇偶信息),并用此信息重新生成失败的驱动器中的数据,这样就将失败的驱动器中的数据恢复过来。RAID 5 和它的混合就是通过奇偶信息来实施的。奇偶校验的优点是成本低。要在使用 RAID 5 的情况下保护任意多的驱动器,只需增加一个驱动器即可。奇偶信息在 RAID 5 阵列中的所有驱动器之间平均分配。奇偶校验的缺点是性能较差,且容错能力低。由于计算和写奇偶信息这些额外成本,所以 RAID 5 对于每个 Windows NT/SQL Server 写操作都需要四个磁盘 I/O 操作,而镜像则只需要两个磁盘 I/O 操作。镜像和奇偶校验的读 I/O 操作的成本相同。而且,在脱机以及从备份媒体中恢复数据之前,RAID 5 阵列只能允许有一个驱动器失败。 通用的经验法则:确保将尽可能多的磁盘条带化以便达到稳定的磁盘 I/O 性能。Performance Monitor 将显示某个 RAID 阵列上是否出现磁盘 I/O 瓶颈现象。作好必要的时候添加磁盘并在 RAID 阵列和/或小型计算机系统接口中重新分配数据的准备,以平衡磁盘 I/O,获取最佳性能。 硬件 RAID 控制器的插件高速缓存的效果 许多硬件 RAID 控制器有某些形式的读和/写高速缓存。通过 SQL Server 利用这些高速缓存,因为它可大大增强磁盘子系统的有效的 I/O 处理能力。这些基于控制器的高速缓存机制的原理是,在几个毫秒内聚集从托管服务器(即 SQL Server)发来的较小的和潜在的不连续的 I/O 请求,然后试图将它们与其它 I/O 请求组织在一起,从而使这些经过批处理的 I/O 形成更大的 (32-128 KB) 甚至连续的 I/O 请求以发送到硬盘。通过遵守连续的和大规模的 I/O 有利于提高性能的原则,使在硬盘为 RAID 控制器提供固定数量 I/O 的情况下,帮助提高磁盘 I/O 吞吐量。这并不是说 RAID 控制器可以 I/O,RAID 控制器高速缓存只是使无限地使硬盘每秒钟处理更多的 用一些组织来排列输入的 I/O 请求,从而尽可能好地使用基础的硬盘定量 I/O 处理能力。 这些 RAID 控制器通常使用某种形式的备份功能来保护它们的高速缓存机制。备份功能有助于将写在高速缓存中的数据保留一段时间(可能是数天),以防止停电。并且在生产环境中,通过为服务器提供充足的不间断电源 (UPS) 保护,使 RAID 控制器具有更多的保护和电源备用时间,以便当服务器出现断电的时候,可用它来将数据刷新到磁盘中,从而加强了数据库服务器的保护。 RAID 级别 RAID 1 和 RAID 0+1 提供最有效的数据保护和最好的 RAID 级别性能,但它需要更多的磁盘。当不限制硬盘的成本时,RAID 1 或 RAID 0+1 是性能和容错力均最佳的 RAID 选择。 RAID 5 用最低的成本来实现容错,但是只有 RAID 1 和 0+1 一半的写性能,这是因为 RAID 5 必须读奇偶信息,并将奇偶信息写入磁盘,从而需要额外的 I/O。RAID 5 的容错能力不及 RAID 1 和 0+1。 RAID 0 可实现最好的磁盘 I/O 性能(没有容错保护的磁盘条带化),但是因为 RAID 0 没有容错能力,所以这种 RAID 级别通常只能用于开发数据库服务器或其它测试环境。 许多 RAID 阵列控制器在物理硬盘上提供 RAID 0+1 选项(也称为 RAID 1/0 和 RAID 10)。RAID 0+1 是混合 RAID 解决方案。在较低的层次,它像普通 RAID 1 一样镜像所有的数据;在较高的层次,控制器在所有驱动器中将数据条带化(像 RAID 0 一样)。因此,RAID 0+1 在提供最高性能(条带化)的同时提供最大程度的保护(镜像)。条带化和镜像操作对于 Windows 和 SQL Server 是透明的,因为它们由 RAID 控制器管理。RAID 1 和 RAID 0+1 之间的不同在于硬件控制器的级别。对于s相同的存储量,RAID 1 和 RAID 0+1 要求同样多的驱动器。有关如何在特定的 RAID 控制器上实施 RAID 0+1 的细节,请与生产控制器的硬件厂商联系。 图 1 说明了 RAID 0、RAID 1、RAID 5 和 RAID 0+1 之间的不同。请注意要容纳四个磁盘量的数据,RAID 1(和 RAID 0+1)需要八个磁盘,而 RAID 5 则需要五个磁盘。确保找到正确的硬件厂商,以了解在运行数据库服务器的特定硬件上实施 RAID 的细节。 联机 RAID 扩充 这是一种十分方便的功能,它使得我们可以在 SQL Server 联机的时候,将磁盘动态地添加到有热插拔插槽的物理 RAID 阵列。许多硬 件厂商都提供具有这种功能的硬件 RAID 控制器。它自动将所有驱动器(包括新添加的驱动器)中的数据重新平均地条带化,而没有必要关闭 SQL Server 或 Windows。一个好主意是空出磁盘阵列箱中的热插拔驱动器插槽以便使用此功能。因此,如果 SQL Server 通常由于过多的 I/O 请求导致 RAID 阵列负担过重(这可由与 RAID 阵列相关的 Windows 逻辑驱动器号的磁盘队列长度显示出来),可以在 SQL Server 运行期间在热插拔插槽中安装一个或多个新硬盘。RAID 控制器将一些已有的 SQL 数据重新分配到这些新硬盘,以便在 RAID 阵列的所有硬盘中平均分配 SQL 数据。于是,新硬盘的 I/O 处理容量(每个驱动器每秒 75 个非连续 I/O 或 150 个连续 I/O)就添加到 RAID 阵列的总的 I/O 处理容量中。 Performance Monitor 和 RAID 在 Performance Monitor 中,逻辑磁盘对象和物理磁盘对象有效地提供相同的信息。所不同的是 Performance Monitor 中的逻辑磁盘与 Windows 视为逻辑驱动器号的磁盘相关。Performance Monitor 中的物理磁盘与 Windows 视为单个物理硬盘的磁盘相关。 要启用 Performance Monitor 计数器,在 Windows 命令提示窗口的命令行运行 diskperf.exe 命令。运行“diskperf -y”以便 Performance Monitor 报告逻辑和物理磁盘的数量。它可以在使用硬盘或硬盘组以及 RAID 控制器时有效,而无需使用 Windows NT 软件 RAID。 当运用 Windows NT 软件 RAID 时,应使用“diskperf -ye”以便 Performance Monitor 正确报告 Windows NT 条带集中的物理计数器。当“diskperf -ye”与 Windows 条带集结合起来使用时,逻辑计数器无法报告正确的信息,需将其忽略。如果要求将逻辑磁盘计数信息与 Windows NT 条带集结合起来使用,应使用“diskperf -y” 命令。将“diskperf -y”和 Windows NT 条带集结合起来使用,可以正确报告逻辑磁盘的数量,但是物理磁盘计数器将无法报告正确信息,需将其忽略。 请注意只有在 Windows NT 重新启动之后,diskperf 命令才有效。 还请注意硬件 RAID 控制器将组成单个 RAID 镜像集或条带集的多个物理硬盘作为一个物理磁盘呈现给 Windows。磁盘管理器用于使逻辑驱动器号与单个物理磁盘相关联,而无需考虑实际有多少个硬盘与 RAID 控制器呈现给它的单个物理硬盘相关联。 但是从性能优化的角度来看,了解与 RAID 阵列相关联的物理硬盘的数量是十分重要的,因为在确定 Windows 和 SQL Server 发送给每个物理硬盘的磁盘 I/O 请求的数量时需要这一信息。将 Performance Monitor 所报告的与某个硬盘相关联的磁盘 I/O 请求的数量除以该 RAID 阵列中已知的实际物理硬盘的数量。 要粗略估算 RAID 阵列中每个硬盘的 I/O 活动,还有很重要的一点是将 Performance Monitor 所报告的磁盘写 I/O 的数量乘以 2(RAID 1 和 0+1)或 4 (RAID 5)。这样将对发送到物理硬盘的实际 I/O 请求给出一个更准确的数量估计,因为硬盘所应用的 I/O 容量数(每个驱动器 75 个不连续 I/O 和 150 个连续 I/O)处于这个物理级别。但是如果硬件 RAID 控制器使用高速缓存,便不要指望用这种方法可以准确计算出硬盘中的 I/O 数,因为高速缓存可以大大改变硬盘中实际的 I/O 数,其原因已在前面讲述过。
本文档为【祥解磁盘 io 性能 对数据库的影响[宝典]】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_482581
暂无简介~
格式:doc
大小:29KB
软件:Word
页数:0
分类:生活休闲
上传时间:2017-11-27
浏览量:12