《MS SQL Server 2000管理员手册》系列——5. 设定与规划I/O 子系统[1]

[入库:2006年2月23日] [更新:2007年3月24日]

本文简介:

5. 设定与规划I/O 子系统
? 磁盘系统的特性
? 磁盘阵列概观
? I/O 子系统的观念
? 常见的RAID层级概观
? RAID层级效能比较
? I/O延迟与SQL Server
? 规划SQL Server磁盘架构
? I/O子系统的技巧与建议
本章总结
当您在设定系统时,要特别注意到 I/O 子系统的设计与设定。I/O 子系统的规划要不对您的系统有所提升,便是降低整体的表现。若能确实了解 I/O 子系统的限制,并在服务器上做好适切的规划,您的系统便可提供理想的效能表现。
我们将在本章中探讨 I/O 子系统。从磁盘运作及其效能限制等基本原理开始,接着介绍可运用的磁盘阵列方案以及各自的特色。此外,您也可以学到判别 I/O 效能问题,并进一步解决这些问题。本章也提供了一些 I/O 子系统的诀窍与建议。最后,我们将告诉您如何恰当地设定 Microsoft SQL Server 2000,好好的运用 I/O 子系统的效能。
磁盘系统的特性
 
磁盘(或说硬盘)是计算机系统中一个基本的组件。令人惊讶的是,近20年来磁盘系统几乎没什么改变。比起过去,今日的磁盘或许更快更稳定,但基本上它们都是一样的东西。
从效能的观点来看,磁盘系统的调校是硬件组件最重要的关键。更正确的说,您不能调校您的磁盘;但若了解磁盘系统运作的原理与限制,并针对这些限制留心规划您的系统,您是在调校您的 I/O 子系统。
磁盘系统的构造
 
磁盘驱动器中用来储存数据组件称做磁盘片或磁盘。磁盘片上涂布着可以储存数据的磁性物质。数据储存在磁道上,所谓磁道,看起来就像是黑胶唱片(或是CD,如果您不记得黑胶唱片长什么样子的话)上的音轨。每道磁道上依序划分着若干扇区,离磁盘中心越远,磁道所容纳的扇区数就越多。图5-1便是一个典型的磁盘片。

 
 
图5-1 磁盘片
大部份的磁盘里都有数片磁盘片,且是一片一片堆栈起来的,如图5-2。读取与写入数据的部份称做「读写头」。由于有着数片磁盘片,读写头往往也不止一个。连接读写头的部份称做「读写臂」,它可以让读写头在扇区上来回移动,有点像是唱机上连接唱针的摇臂。
读写头与读写臂是固定连接的,造成的结果是,所有读写头在磁盘片上的动作将会同进同出。换言之,所有读写头在磁盘片上读或写的动作是同步的,数据不是同时被读取就是同时被写入。基于这种运作方式,读写头是同时经过每片磁盘上相同的磁道,这些磁道堆栈起来就如圆柱,因此我们说数据是被储存在「磁柱」上,就如图5-2所示。
磁盘里的磁盘片数量可以是一片,也可以多到超过六片,磁盘片的密度与数量决定了磁盘的容量大小。大部份的磁盘规格都差不多,不同的部份只在磁盘片的数量。较常见的是有三片磁盘片的9 GB磁盘与六片磁盘片的18GB磁盘。

 
 
图5-2 磁柱
磁盘特性
 
现在您大概了解磁盘的构造,接着我们再来看看它是如何运作的。首先必须了解磁盘旋转的特性,由此便能明白磁盘搜寻效能的症结。
循环延迟
 
今日大多数高阶磁盘已能达到每分钟 10000 转这种速度(10000rpm)。当有数据要求时,磁盘在读到这个数据前需先旋转至数据位置,这个转动大概要花6毫秒(ms),或说0.006秒。一颗10000 rpm的磁盘每秒旋转166.7圈,亦即每圈花费1/166.7秒,或6 ms。
磁盘要读取数据,则储存数据的扇区必须位于读写头之下。因为磁盘似乎永远在旋转,读写头看起来就像是在等待扇区转至它的位置。这段等待扇区旋转至读写头位置的时间,我们就称做「循环延迟」(rotational latency)。如果磁盘是完整地旋转一圈,循环延迟的长度为6 ms,但平均而言,它大概是3 ms左右。
循环延迟会增加磁盘存取的响应时间。因此,当您在为系统选择磁盘时,从效能的观点审慎考虑循环延迟的长度是非常重要的事。如刚刚所见,一颗每分钟10000转的磁盘,循环延迟约为3 ms。一般较旧型的磁盘每分钟是7200转,一圈约为8.3 ms,平均的循环延迟大概是4.15 ms。看起来似乎差别不大,但其实这个时间约比10000 rpm的磁盘多了38%。读完本章您会发现,这38%将是系统 I/O 时间的一大负担。
磁盘搜寻
 
当我们想从磁盘上取回数据时,不只需要磁盘驱动器将扇区旋转至读写头底下让它读取数据,读写头也必需移动至数据所位在的磁道才行。读写头是靠读写臂在磁盘片的夹层空间来回移动,移动至数据位在的正确磁柱所耗费的时间称做「搜寻时间」(seek time)。图5-3显示了循环延迟与搜寻时间。

 
 
图5-3 循环延迟与搜寻时间
搜寻时间的长短主要是依读写头所需移动的距离而定。当磁盘存取动作是循序的,则读写头仅需移动一点点距离,搜寻时间会比较短。相对的,若存取动作遍及整个磁盘,搜寻时间自然就会变得相当长。
搜寻时间与循环延迟都会增加 I/O 作业的时间,也会因此恶化磁盘的效能。在一颗10000 rpm磁盘上的循环延迟通常约3ms左右。搜寻时间则依磁盘的大小、速度以及搜寻时的状况而有所不同。
 Track-to-Track 搜寻 「Track-to-Track 搜寻时间」指的是读写头在相邻的磁道间移动所需要的时间。这种型态的搜寻多半是执行循序性 I/O 作业的时候。以一颗典型的10000 rpm、9GB的磁盘来说,track-to-track 的搜寻时间大概是0.8 ms左右。您可以看到,0.8 ms的track-to-track 搜寻时间与约略3 ms的循环延迟,正是影响磁盘效能的最大因素。如果 I/O 作业要求传送至磁盘的速度够快,磁盘在相邻磁道之间的动作(不论是读取或写入)几乎可同时完成。然而情况多非如此。某些状况是,I/O 动作的要求不够快,而磁盘是在每个循序存取之间旋转。会不会出现这种问题,要看磁盘控制卡的设计与速度而定。
 平均搜寻时间 「平均搜寻时间」指的是读写头在随机磁道之间搜寻所耗费的时间平均值。依据磁盘规格表,一颗10000 rpm的磁盘的平均搜寻时间大概是6 ms左右。由于 SQL Server 的 I/O 作业大多随机产生,您的磁盘也有许多执行随机性 I/O 的机会。
这款磁盘的最大搜寻时间可以长到13 ms。所谓最大搜寻时间,指的是从磁盘片最内圈的磁道移动至最外圈的磁道所耗费的时间。这也被称做 full-disk 搜寻。但一般来说,搜寻动作多半不会是 full-disk 搜寻,尤其当磁盘不是全满的时候。
磁盘规格
 
在本节里,您可以看到磁盘在执行不同的 I/O 作业时能达到多快的速度。要计算这些东西,您手上必须有更多信息才行。大部份的数据可以从厂商提供的磁盘规格表里找到。本章之前所举的例子是一颗10000 rpm、9.1 GB的磁盘规格。在表5-1中可以了解此型磁盘其它的详细规格。
表5-1 磁盘规格表

规格

说明

磁盘容量

9.1 GB

尚未format的磁盘容量

转速

10,000 rpm

磁盘的旋转速度

传输速率

40 MBps

SCSI接口的速度

平均搜寻时间

5.2 ms (read)

6 ms (write)

本文关键:《MS SQL Server 2000管理员手册》系列——5. 设定与规划I/O 子系统
  相关方案
Google
 

本站最佳浏览方式为 分辨率 1024x768 IE 6.0(或更高版本的 IE浏览器)

go top