Chinaunix首页 | 论坛 | 博客
  • 博客访问: 10327498
  • 博文数量: 1669
  • 博客积分: 16831
  • 博客等级: 上将
  • 技术积分: 12594
  • 用 户 组: 普通用户
  • 注册时间: 2011-02-25 07:23
个人简介

柔中带刚,刚中带柔,淫荡中富含柔和,刚猛中荡漾风骚,无坚不摧,无孔不入!

文章分类

全部博文(1669)

文章存档

2023年(4)

2022年(1)

2021年(10)

2020年(24)

2019年(4)

2018年(19)

2017年(66)

2016年(60)

2015年(49)

2014年(201)

2013年(221)

2012年(638)

2011年(372)

分类: 服务器与存储

2014-06-05 16:09:52

常见硬盘IOPS参考值

    博客分类: 
 

IOPS,即I/O per second,即每秒读写(I/O)操作的次数,多用于OLTP/数据库、小文件存储等场合,衡量随机访问的性能。

关于IOPS,请看:《磁盘性能指标--IOPS 理论 》 

 

 

如何测试IOPS

--------------------------------------------------------------------

参考:http://zhumeng8337797.blog.163.com/blog/static/1007689142011226101554201

 

一个在线计算IOPS的网站

--------------------------------------------------------------------

在线计算IOPS,很不错,支持各种常见RAID,和多种型号硬盘,如SSD

 

 

常见硬盘IOPS参考值(数据仅供参考):
---------------------------------------------------------------------
  2,5" 10.000 rpm  SAS 113  IOPS
  2,5" 15.000 rpm SAS 156 IOPS
  3,5" 15.000 rpm SAS 146  IOPS
  
  2,5" 5.400 rpm SATA 71 IOPS
  3,5" 7.200 rpm SATA 65 IOPS
  
  3,5" 10.000 rpm U320 104 IOPS
  3,5" 15.000 rpm U320 141 IOPS
  
  3,5" 10.000 rpm FC 125 IOPS
  3,5" 15.000 rpm FC 150 IOPS
  
  3,5" 10.000 rpm FATA 119 IOPS

 

 

我台试机的硬盘WD32000AAKX-221CA  (7200转) SATA

-------------------------------------------------------------------

(HD Tune 专业版4.6测试)
随机写入 我没有测试

随机读取 请看下图:

 

 

 

 

7200转SATA  西数WD1002FAEX 对比  希捷Barraduda XT    (增加了队列深度)

-------------------------------------------------------------------------------------------------------------------------
原文:http://blog.chinaunix.net/uid-14283731-id-2824441.html

 

 


RAID 0 1 5  随机访问(IOPS)性能测试 
------------------------------------
SATA 与 SAS 硬盘
源文地址:http://blog.chinaunix.net/uid-14283731-id-2824341.html

我们先来看看随机读应用的特点。在队列深度为1时,相当于单线程访问,此时的IOPS基本相当于单块硬盘每秒钟的寻道+等待次数(即平均访问时间的倒数)。当队列深度不断增加,每块硬盘的NCQ(本地命令排队)功能和硬盘的数量开始发挥作用。队列深度达到256时,理想状态下的IOPS数值与硬盘的数量成正比,无论RAID级别为0、1、5还是6,即单块硬盘IOPS的N倍(N=硬盘块数)。

那么实际情况如何呢?我们看到下方的3条SATA硬盘测试曲线除了最右端的一点基本重合,这样就印证了我们上面的说法。RAID 1的测试成绩在队列深度64时达到最大值,RAID 0/5/6也在128之后不再明显上升。SAS RAID 1在队列深度4之前的IOPS小幅超过了RAID 0和5,我们觉得也许是由于简单RAID级别在资源的消耗上更少吧。
SATA RAID的IOPS最低值在65左右,而SAS则超过了180,这就是7200rpm和15000rpm硬盘机械部分之间的差距。SAS RAID 0/5的最大IOPS达到了1200,RAID 1也超过900,而SATA只有不到600,可以说是SAS硬盘价格贵最好的解释。
下面是随机写,不同RAID级别在该项目上表现不同。虽然此时我们关闭了RAID卡的write cache,不过操作系统的磁盘写入缓存仍然起作用。对于RAID 0和1,不同队列深度的性能差别不大就是由于数据是经过缓存而后写入硬盘的。而RAID 5/6由于复杂的写入算法,数据就没有前面的读测试那么乐观了。RAID 0的IOPS仍然和硬盘的数量成正比;RAID 1由于是2块硬盘写入同样的数据,表现基本相当于单盘;RAID 5/6的随机写速度理论上也会随着队列深度的增加而提高。

排在最上面的1条曲线是SAS RAID 0,IOPS达到1000以上;其次是SATA RAID 0,也有600上下,二者之间差距的原因还是单盘性能,和前面的随机读测试一样。SAS RAID 5的IOPS起初为100左右,在队列深度达到16之前一直不如RAID 1,最高时也没有超过400。这就是一些数据库用户选择RAID 1(10)而不是RAID 5的原因。SATA RAID 5的成绩大约为SAS的三分之一左右;而最下面的RAID 6测试曲线和我们预期的差距较大,始终没有超过40 IOPS。这是本次测试中我们发现的第一个不太正常的情况,或许Adaptec需要改进一下。

 

 

是OCZ Vertex SSD固态硬盘的测试数据

-------------------------------------------------------------------------------------------------------------------------

 

 

 

SSD 三星830系列  IOPS指标

-----------------------------------------------------------------------------------------------

(价格是2012-10-29 京东商城价格)
三星(SAMSUNG)830系列 512G 2.5英寸 SATA-3固态硬盘(MZ-7PC512B/WW) Basic Kit    ----3500元
连续读取:最大 520 MB/秒 连续写入:最大 400MB/秒 随机读取:最大 80,000 IOPS 随即写入:最大 36,000 IOPS

三星(SAMSUNG)830系列 128G 2.5英寸 SATA-3固态硬盘(MZ-7PC128B/WW)  ----670元
特性   连续读取:最大 520 MB/秒 连续写入:最大 320 MB/秒 随机读取:最大 80,000 IOPS 随机写入:最大 30,000 IOPS
三星(SAMSUNG)830系列 64G 2.5英寸 SATA-3固态硬盘(MZ-7PC064B/WW)
    ----450元
特性 连续读取:最大 520 MB/秒 连续写入:最大 160 MB/秒 随机读取:最大 75,000 IOPS 随机写入:最大 16,000 IOPS 
测评文章:

 

上图中的QD是队列深度,实际情况队列深度不会超过4,所以队列深度为1最有参考价值。

 

 

 




美光(Crucial)M4系列 128G 2.5英寸 SATA-3固态硬盘(CT128M4SSD2)  ----780元
500 MB/sec (SATA 6Gb/s),175 MB/sec (SATA 6Gb/s)
随机读取 4k 45,000 IOPS,,随机写入 4k 20,000 IOPS

美光(Crucial)M4系列 64G 2.5英寸 SATA-3固态硬盘(CT064M4SSD2)   ----460元
连续读取 (up to) 500 MB/sec (SATA 6Gb/s),连续写入 (up to) 95 MB/sec (SATA 6Gb/s)
随机读取 4k 45,000 IOPS,,随机写入 4k 20,000 IOPS

英特尔 Intel SSDSC2CT120A3K5-CBOX 120G 固态硬盘330 系列     ----1000元
顺序读/写(最高) 500 MB/秒/ 400 MB/秒 
随机 4KB读/写(最高) 42,000 IOPS / 52,000 IOPS 

英特尔 Intel SSDSC2CT060A3K5-CBOX 60G 固态硬盘330 系列     ----470元
顺序读/写(最高) 500 MB/秒/ 400 MB/秒
随机 4KB读/写(最高) 42,000 IOPS / 52,000 IOPS



IOPS (Input/Output Per Second)即每秒的输入输出量(或读写次数),是衡量磁盘性能的主要指标之一。IOPS是指单位时间内系统能处理的I/O请求数量,一般以每秒处理的I/O请求数量为单位,I/O请求通常为读或写数据操作请求。随机读写频繁的应用,如OLTP(Online Transaction Processing),IOPS是关键衡量指标。另一个重要指标是数据吞吐量(Throughput),指单位时间内可以成功传输的数据数量。对于大量顺序读写的应用,如VOD(Video On Demand),则更关注吞吐量指标。 
传统磁盘本质上一种机械装置,如FC, SAS, SATA磁盘,转速通常为5400/7200/10K/15K rpm不等。影响磁盘的关键因素是磁盘服务时间,即磁盘完成一个I/O请求所花费的时间,它由寻道时间、旋转延迟和数据传输时间三部分构成。 
寻道时间Tseek是指将读写磁头移动至正确的磁道上所需要的时间。寻道时间越短,I/O操作越快,目前磁盘的平均寻道时间一般在3-15ms。 
旋转延迟Trotation是指盘片旋转将请求数据所在扇区移至读写磁头下方所需要的时间。旋转延迟取决于磁盘转速,通常使用磁盘旋转一周所需时间的1/2表示。比如,7200 rpm的磁盘平均旋转延迟大约为60*1000/7200/2 = 4.17ms,而转速为15000 rpm的磁盘其平均旋转延迟约为2ms。 
数据传输时间Ttransfer是指完成传输所请求的数据所需要的时间,它取决于数据传输率,其值等于数据大小除以数据传输率。目前IDE/ATA能达到133MB/s,SATA II可达到300MB/s的接口数据传输率,数据传输时间通常远小于前两部分时间。 
因此,理论上可以计算出磁盘的最大IOPS,即IOPS = 1000 ms/ (Tseek + Troatation),忽略数据传输时间。假设磁盘平均物理寻道时间为3ms, 磁盘转速为7200,10K,15K rpm,则磁盘IOPS理论最大值分别为,  IOPS = 1000 / (3 + 60000/7200/2)  = 140  IOPS = 1000 / (3 + 60000/10000/2) = 167  IOPS = 1000 / (3 + 60000/15000/2) = 200 
固态硬盘SSD是一种电子装置, 避免了传统磁盘在寻道和旋转上的时间花费,存储单元寻址开销大大降低,因此IOPS可以非常高,能够达到数万甚至数十万。实际测量中,IOPS数值会受到很多因素的影响,包括I/O负载特征(读写比例,顺序和随机,工作线程数,队列深度,数据记录大小)、系统配置、操作系统、磁盘驱动等等。因此对比测量磁盘IOPS时,必须在同样的测试基准下进行,即便如何也会产生一定的随机不确定性。通常情况下,IOPS可细分为如下几个指标: 
Toatal IOPS,混合读写和顺序随机I/O负载情况下的磁盘IOPS,这个与实际I/O情况最为相符,大多数应用关注此指标。 
Random Read IOPS,100%随机读负载情况下的IOPS。 Random Write IOPS,100%随机写负载情况下的IOPS。 




     2014年度细分行业报告汇集  制造行业报告  互联网行业报告  农林牧渔行业报告      
 




Sequential Read IOPS,100%顺序负载读情况下的IOPS。 Sequential Write IOPS,100%顺序写负载情况下的IOPS。 
IOPS的测试benchmark工具主要有Iometer, IoZone, FIO等,可以综合用于测试磁盘在不同情形下的IOPS。对于应用系统,需要首先确定数据的负载特征,然后选择合理的IOPS指标进行测量和对比分析,据此选择合适的存储介质和软件系统。下面的磁盘IOPS数据来自,给大家一个基本参考。 

Device IOPS Interface Notes
7200 RPM SATAdrives ~90 IOPS SATA II  
10k RPM SATAdrives, queue depth 1 ~130 IOPS SATA II fio -readonly -name iops -rw=randread -bs=512 -runtime=20 -iodepth 1 -filename /dev/sda -ioengine libaio -direct=1
10k RPM Serial Attached SCSIdrives ~140 IOPS SAS  
15k RPM Serial Attached SCSIdrives ~180 IOPS SAS  
10k RPM SATAdrives, queue depth 24 ~290 IOPS SATA II fio -readonly -name iops -rw=randread -bs=512 -runtime=20 -iodepth 24 -filename /dev/sda -ioengine libaio -direct=1
Simple SLC SSD ~400 IOPS SATA II  
Intel X25-M G2 (MLC; As of March 2010) ~8,600 IOPS SATA II Intel's data sheet claims 6,600/8,600 IOPS (80GB/160GB version) and 35,000 IOPS for random 4KB writes and reads, respectively.
Intel X25-E (SLC; As of March 2009) ~5,000 IOPS SATA II Intel's data sheet claims 3,300 IOPS and 35,000 IOPS for writes and reads, respectively. 5,000 IOPS are measured for a mix. Intel X25-E G1 has around 3 times higher IOPS compared to the Intel X25-M G2.
OCZ Z-Drive e84, a PCI Express SLC Solid State Drive 16,000 IOPS PCIe Maximum read/write speed of 800/750 MB/s).
G.Skill Phoenix Pro et. al. ~20,000 IOPS SATA III SandForce-1200 based SSD drives with enhanced firmware, states up to 50,000 IOPS, but real-world performance shows for all drives from different manufacturers ~25,000 IOPS for random read and ~15,000 IOPS for random write.
ioDrive, a PCI-Express card with Flash 140,000 Read IOPS, 135,000 Write IOPS PCIe  
ioDrive Duo 250,000+ IOPS PCIe  
DDRdrive X1, a May 2009 PCI Express based solid-state drive 300,000+ (512B Random Read IOPS) and 200,000+ (512B Random Write IOPS) PCIe  
Texas Memory System

RamSan-20

120,000+ Random Read/Write IOPS PCIe Inlude RAM cache and UltraCapacitor to preserve the memory non-volatile
Texas Memory System

RamSan-630 Appliance

1,000,000+ Random Read/Write IOPS FC / InfiniBand  
Violin Memory Appliance 1,000,000+ Random Read/Write IOPS Proprietary interconnect  
ioDrive Octal (single PCI Express card) 1,000,000+ Random Read/Write IOPS PCIe  


IOPS计算方法

 (2012-03-22 14:32:41)
标签: 

杂谈

通常当数据库管理员提出需要更多存储空间的时候,他们还会指定必须要达到多少IOPS。现在有这样一个需求,20TB存储空间同时满足4500 IOPS+RAID 5,我应该如何计算?RAID 5或者RAID 1/0的时候分别需要多少块硬盘?

首先需要知道I/O中读操作(Read)与写操作(Write)所占的百分比。然后通过下列公式,将主机的IOPS需求转换成硬盘实际IOPS负载:

 

 

 

 

RAID类型 公式
RAID 5和3 Drive IOPS = Read IOPS + 4*Write IOPS
RAID 6 Drive IOPS = Read IOPS + 6*Write IOPS
RAID 1和1/0 Drive IOPS = Read IOPS + 2*Write IOPS

 

 

 

 

 

 

 

假定4500 IOPS中读/写比是2:1,则不同RAID类型Drive IOPS要求分别如下:

RAID 1/0: (2/3)*4500 + 2*(1/3)*4500 = 6000 IOPS

RAID 5: (2/3)*4500 + 4*(1/3)*4500 = 9000 IOPS

RAID 6: (2/3)*4500 + 6*(1/3)*4500 = 12000 IOPS

 

再参照下表中不同类型硬盘单块IOPS参数,得出需要多少块硬盘:

硬盘类型 IOPS
Fibre Channel 15k rpm 180
SAS 15k rpm 180
Fibre Channel 10k rpm 140
SATA 7.2k rpm 80
SATA 5.4k rpm 40
Flash drive 2500

 

假定选用FC 15K RPM硬盘,则:

RAID 1/0: 6000/180 = 34 块

RAID 5: 9000/180 = 50 块

RAID 6: 12000/180 = 67 块

 

注:实际情况下还需考虑Vault Drivers (共5块)以及Hot Spares (建议每30块硬盘一个)。

 

最后,如果选用600GB FC硬盘来实现20TB可用空间,则RAID 1/0需要78块,RAID 5需要42块。




磁盘性能指标--IOPS 理论

    博客分类: 
 

机械硬盘的连续读写性很好, 但随机读写性能很差。这是因为磁头移动至正确的磁道上需要时间,随机读写时,磁头不停的移动,时间都花在了磁头寻道上,所以性能不高。  如下图:

在存储小文件(图片)、OLTP数据库应用时,随机读写性能(IOPS)是最重要指标。

学习它,有助于我们分析存储系统的性能互瓶颈。
下面我们来认识随机读写性能指标--IOPS(每秒的输入输出次数)。

 


磁盘性能指标--IOPS
----------------------------------------------------------
        IOPS (Input/Output Per Second)即每秒的输入输出量(或读写次数),是衡量磁盘性能的主要指标之一。IOPS是指单位时间内系统能处理的I/O请求数量,一般以每秒处理的I/O请求数量为单位,I/O请求通常为读或写数据操作请求。

    随机读写频繁的应用,如小文件存储(图片)、OLTP数据库、邮件服务器,关注随机读写性能,IOPS是关键衡量指标。

    顺序读写频繁的应用,传输大量连续数据,如电视台的视频编辑,视频点播VOD(Video On Demand),关注连续读写性能。数据吞吐量是关键衡量指标。

IOPS和数据吞吐量适用于不同的场合:
读取10000个1KB文件,用时10秒  Throught(吞吐量)=1MB/s ,IOPS=1000  追求IOPS
读取1个10MB文件,用时0.2秒  Throught(吞吐量)=50MB/s, IOPS=5  追求吞吐量

磁盘服务时间
--------------------------------------
传统磁盘本质上一种机械装置,如FC, SAS, SATA磁盘,转速通常为5400/7200/10K/15K rpm不等。影响磁盘的关键因素是磁盘服务时间,即磁盘完成一个I/O请求所花费的时间,它由寻道时间、旋转延迟和数据传输时间三部分构成。

寻道时间 Tseek是指将读写磁头移动至正确的磁道上所需要的时间。寻道时间越短,I/O操作越快,目前磁盘的平均寻道时间一般在3-15ms。
旋转延迟 Trotation是指盘片旋转将请求数据所在扇区移至读写磁头下方所需要的时间。旋转延迟取决于磁盘转速,通常使用磁盘旋转一周所需时间的1/2表示。比如,7200 rpm的磁盘平均旋转延迟大约为60*1000/7200/2 = 4.17ms,而转速为15000 rpm的磁盘其平均旋转延迟为2ms。
数据传输时间 Ttransfer是指完成传输所请求的数据所需要的时间,它取决于数据传输率,其值等于数据大小除以数据传输率。目前IDE/ATA能达到133MB/s,SATA II可达到300MB/s的接口数据传输率,数据传输时间通常远小于前两部分消耗时间。简单计算时可忽略。

 

常见磁盘平均物理寻道时间为:
7200转/分的STAT硬盘平均物理寻道时间是10.5ms
10000转/分的STAT硬盘平均物理寻道时间是7ms
15000转/分的SAS硬盘平均物理寻道时间是5ms

 

常见硬盘的旋转延迟时间为:

7200   rpm的磁盘平均旋转延迟大约为60*1000/7200/2 = 4.17ms

10000 rpm的磁盘平均旋转延迟大约为60*1000/10000/2 = 3ms,

15000 rpm的磁盘其平均旋转延迟约为60*1000/15000/2 = 2ms。



最大IOPS的理论计算方法
--------------------------------------
IOPS = 1000 ms/ (寻道时间 + 旋转延迟)。可以忽略数据传输时间。

7200   rpm的磁盘 IOPS = 1000 / (10.5 + 4.17)  = 68 IOPS
10000 rpm的磁盘IOPS = 1000 / (7 + 3) = 100 IOPS
15000 rpm的磁盘IOPS = 1000 / (5 + 2) = 142 IOPS


影响测试的因素
-----------------------------------------
实际测量中,IOPS数值会受到很多因素的影响,包括I/O负载特征(读写比例,顺序和随机,工作线程数,队列深度,数据记录大小)、系统配置、操作系统、磁盘驱动等等。因此对比测量磁盘IOPS时,必须在同样的测试基准下进行,即便如此也会产生一定的随机不确定性。


队列深度说明 
NCQ、SCSI TCQ、PATA TCQ和SATA TCQ技术解析 
----------------------------------------
    是一种命令排序技术,一把喂给设备更多的IO请求,让电梯算法和设备有机会来安排合并以及内部并行处理,提高总体效率。
SCSI TCQ的队列深度支持256级
ATA TCQ的队列深度支持32级 (需要8M以上的缓存)
NCQ最高可以支持命令深度级数为32级,NCQ可以最多对32个命令指令进行排序。
    大多数的软件都是属于同步I/O软件,也就是说程序的一次I/O要等到上次I/O操作的完成后才进行,这样在硬盘中同时可能仅只有一个命令,也是无法发挥这个技术的优势,这时队列深度为1。
    随着Intel的超线程技术的普及和应用环境的多任务化,以及异步I/O软件的大量涌现。这项技术可以被应用到了,实际队列深度的增加代表着性能的提高。
在测试时,队列深度为1是主要指标,大多数时候都参考1就可以。实际运行时队列深度也一般不会超过4.


IOPS可细分为如下几个指标:
-----------------------------------------
数据量为n字节,队列深度为k时,随机读取的IOPS
数据量为n字节,队列深度为k时,随机写入的IOPS


IOPS的测试benchmark工具
------------------------------------------
         IOPS的测试benchmark工具主要有Iometer, IoZone, FIO等,可以综合用于测试磁盘在不同情形下的IOPS。对于应用系统,需要首先确定数据的负载特征,然后选择合理的IOPS指标进行测量和对比分析,据此选择合适的存储介质和软件系统。



阅读(12641) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~