当前位置:首页 > 攻略笔记 > 正文

如何评价硬盘的好坏(硬盘好坏看什么)

如何评价硬盘的好坏(硬盘好坏看什么),本文通过数据整理汇集了如何评价硬盘的好坏(硬盘好坏看什么)相关信息,下面一起看看。

I/O的概念,从字义上理解,就是输入和输出。I/O从顶层到底层都存在于操作系统中。比如CPU有I/O,内存有I/O,VMM有I/O,底层磁盘也有I/O,就是广义的I/O。一般来说,一个上层I/O可能对磁盘产生多个I/O,即上层I/O稀疏,下层I/O密集。

磁盘的I/O,顾名思义,就是磁盘的输入输出。输入是指将数据写入磁盘,输出是指从磁盘读取数据。我们常见的磁盘类型有ATA、SATA、FC、SCSI和SAS,如图1所示。在这些磁盘中,SAS和FC磁盘是服务器常用的,一些高端存储也使用SSD磁盘。每个磁盘的性能都不一样。

图一。物理磁盘和常见磁盘类型的体系结构

SAN(存储区域网)和NAS(网络附加存储)一般有两个评价指标:IOPS和吞吐量,这两个指标既相互独立又相互联系。存储系统性能最重要的指标是IOPS。接下来,将介绍这两个参数的含义。

IOPS(每秒输入/输出),即每秒输入/输出(或读/写次数),是衡量磁盘性能的主要指标之一。IOPS是指单位时间内系统可以处理的I/O请求的数量。I/O请求通常是读取或写入数据的请求。IOPS是频繁读写的应用程序(如OLTP(在线事务处理))的关键指标。另一个重要指标是数据吞吐量,指单位时间内可以成功传输的数据量。对于大量的顺序读写应用,比如VOD(视频点播),更多的是关注吞吐量指标。

简而言之:

磁盘的IOPS,即一秒钟内有多少I/O读写磁盘。

磁盘的吞吐量,即每秒的磁盘I/O流量,即写入磁盘和从磁盘读取的数据大小。

IOPS和吞吐量之间的关系

每秒I/O吞吐量=IOPS *平均I/O大小。从公式中可以看出,I/O大小越大,IOPS越高,每秒I/O的吞吐量也越高。因此,我们认为IOPS和吞吐量越高越好。实际上,对于一个磁盘来说,这两个参数都有其最大值,它们之间存在一定的关系。

IOPS可以细分为以下指标:

total IOPS,混合读写和顺序随机I/O负载下的磁盘IOPS,是最符合实际I/O情况的,大多数应用都关注这个指标。

在100%随机读取负载下随机读取IOPS IOPS。

在100%随机写入负载下随机写入IOPS IOPS。

100%顺序读取负载下的IOPS IOPS顺序读取。

100%顺序写入负载下的IOPS IOPS顺序写入。

下图显示了典型的NFS测试结果:

Iometer、IoZone、FIO等。是IOPS测试的基准工具,可综合用于测试不同情况下的磁盘IOPS。对于应用系统来说,首先要确定数据的负载特性,然后选择合理的IOPS指数进行测量和对比分析,从而选择合适的存储介质和软件系统。

IOPS计算公式

对于磁盘,一次完整的IO操作是这样进行的:当控制器向磁盘发出IO操作命令时,磁盘的执行臂随着读写头离开着陆区(内环没有数据的区域),移动到待操作的初始数据块所在磁道的右上方。这个过程叫做寻找,相应消耗的时间叫做寻址时间。但是,数据可以在找到相应的轨道后不能立即读取。这时,磁头可以直到盘片旋转到初始数据块的扇区正好落在读/写磁头上方,才开始读取数据。等待盘片旋转到可操作扇区所花费的时间称为旋转延迟。接下来,随着磁盘的旋转,磁头不断读写相应的数据块,直到完成本次IO操作所需的所有数据。这个过程称为数据传输,对应的时间称为传输时间。完成这三个步骤后,一个IO操作就完成了。

我们看硬盘厂商的宣传单,经常可以看到三个参数,分别是平均寻址时间、磁盘转速和最大传输速度。这三个参数可以为我们提供计算上述三个步骤的时间。

第一次寻址时间,考虑到要读写的数据可能在磁盘的任意一个磁道,要么在磁盘的最内圈(最短寻址时间),要么在磁盘的最外圈(最长寻址时间),所以我们在计算中只考虑平均寻址时间,即磁盘参数中表示的平均寻址时间。这里用的是目前最10krmp的硬盘5ms。

像寻址一样,第二旋转延迟可以刚好在磁头被定位在磁道上之后要被读取和写入的扇区上方。此时可以立即读写数据,不会有额外的延迟,但最坏的情况是磁盘旋转一整圈磁头才能读取数据,所以这里我们也考虑平均旋转延迟,对于10krpm的磁盘是(60s/10k)*(1/2)=2ms。

第三个传输时间,磁盘参数提供了我们的最大传输速度。当然要达到这个速度是很难的,但是这个速度是磁盘只能读写磁盘的速度。所以,只要给定单个IO的大小,我们就知道磁盘需要花多少时间在数据传输上。这个时间是IO块大小/最大传输速率。

现在我们可以得到这样一个公式来计算单个IO的时间。

IO时间=寻道时间60秒/转速/2 IO区块大小/传输速率

我们可以这样计算IOPS。

IOPS=1/IO时间=1/(寻道时间60秒/转速/2 IO区块大小/传输率)

给定不同的IO大小,我们可以得到以下一系列数据。

4K (1/7.1毫秒=140 IOPS)

5毫秒(60秒/15000转/分/2)4K/40兆字节=5 2 0.1=7.1

8k (1/7.2毫秒=139 IOPS)

5毫秒(60秒/15000转/分钟/2) 8K/40MB=5 2 0.2=7.2

16K (1/7.4毫秒=135 IOPS)

5毫秒(60秒/15000转/分钟/2) 16K/40MB=5 2 0.4=7.4

32K (1/7.8毫秒=128 IOPS)

5毫秒(60秒/15000RPM/2) 32K/40MB=5 2 0.8=7.8

64K (1/8.6毫秒=116 IOPS)

5毫秒(60秒/15000RPM/2) 64K/40MB=5 2 1.6=8.6

从上面的数据可以看出,单个IO越小,单个IO花费的时间就越少,对应的IOPS就越大。

以上数据都是在一个理想的假设下得出的。这里的理想情况是磁盘需要平均寻址时间和平均旋转延迟。这个假设其实更符合我们随机读写的实际情况。在随机读写中,每次IO操作的寻址时间和旋转延迟可以不可忽视,这两个时间的存在限制了IOPS。现在,让让我们来考虑一个相对极端的顺序读写操作,例如,在读取一个文件时,磁盘上连续分布着大量的存储空间。由于文件的存储分布是连续的,磁头在完成一次读IO操作后不需要新的寻址或旋转延迟。在这种情况下,我们可以得到一个大的IOPS值,如下所示。

4K (1/0.1毫秒=10000 IOPS)

0毫秒0毫秒4K/40MB=0.1

8k (1/0.2毫秒=5000 IOPS)

0毫秒0毫秒8K/40MB=0.2

16K (1/0.4毫秒=2500 IOPS)

0毫秒0毫秒16K/40MB=0.4

32K (1/0.8毫秒=1250 IOPS)

0毫秒0毫秒32K/40MB=0.8

64K (1/1.6毫秒=625 IOPS)

0毫秒0毫秒64K/40MB=1.6

与第一组数据相比,差距很大。因此,当我们要用IOPS测量一个IO系统的系统能量时,必须明确IOPS是在什么条件下,即读写方式和单个IO的大小。当然,在实践中,尤其是在OLTP系统中,随机的小IO读写是最有说服力的。

此外,对于同一个磁盘(或LUN),IOPS的值不是固定的,因为每个I/O读写数据的大小不同。比如每次I/O读写连续的大数据块,IOPS会比较低;在不频繁换道的情况下,每次写入或读取的数据块较小,IOPS会相对较高。也就是说,IOPS也取决于I/O块的大小,不同I/O块大小测得的IOPS值是不同的。对于一个特定的IOPS,可以知道它当时测试的I/O块的大小。IOPS有一个极限值。表1列出了各种磁盘的IOPS极限值。

表1。常见的磁盘类型及其IOPS

一般来说,I/O的类型可以分为:读/写I/O、大/小块I/O、连续/随机I/O、顺序/并发I/O,在这些类型中,我们主要讨论:大/小块I/O、连续/随机I/O、顺序/并发I/O。

大型/小型输入/输出

该值是指控制器指令中给出的连续读出扇区数。如果数量较大,如64、128等。我们可以把它想象成一个大型的I/O;反之,如果很小,比如4或者8,我们就会认为是小I/O,其实大I/O和小I/o是没有明确界限的。

连续/随机输入输出

连续I/O是指这个I/O给定的初始扇区地址和最后一个I/O的结束扇区地址完全连续或者相隔不远。相反,如果差异很大,就会被算作随机I/O。

连续I/O比随机I/O效率高的原因是,在进行连续I/O时,磁头几乎不需要换通道,或者换通道的时间很短;但是,对于随机I/O,如果有很多I/O s,会造成磁头不停换通道,效率大打折扣。

顺序/并发输入/输出

从概念上讲,并发I/O是指向一个磁盘发出I/O指令,然后向另一个磁盘发出I/O指令,而不等待它的响应。条带化RAID(LUN)上的I/O操作是并发的,如raid 0 1(1 0)、raid5等。否则,它就是顺序I/O.

确认磁盘I/O存在性能问题。

对于随机负载,我们通常认为在遇到其余情况时会出现I/O性能问题:

1.平均阅读时间超过15ms。

2.使用写缓存时,平均写入时间超过2.5毫秒

对于顺序加载,我们通常认为在遇到其余情况时会出现I/O性能问题:

1.磁盘上有两个连续的I/O流。

2.吞吐量不足(即远远低于磁盘I/O带宽)

对于一个磁盘来说,随着IOPS的增加,I/O服务也会增加,会出现一个饱和点,即IOPS达到某一点后,IOPS的增加会导致I/O服务时间显著增加。

图3。磁盘IOPS与IO服务时间的关系

根据经验,在我们的测试工作中,我们主要关注IOPS、吞吐量和磁盘占线%。如果IOPS和吞吐量都很低,并且磁盘busy%也低,我们会认为是磁盘压力太小,导致吞吐量和IOPS低;仅当IOPS和吞吐量较低且磁盘的busy%很高(接近100%)我们会从磁盘I/O方面分析I/O性能吗?

更多如何评价硬盘的好坏(硬盘好坏看什么)相关信息请关注本站。

最新文章