来自磁盘的需求
简单的说,磁盘的一个典型I/O操作由两个阶段组成:
1.数据定位
平均定位时间主要由两部分组成:平均寻道时间和平均转动延迟。寻道时间的典型值是4.6ms。转动延迟则取决于磁盘的转速:普通7200RPM桌面硬盘的转动延迟是4.2ms,而高端10000RPM的是3ms。这些数字多年来一直徘徊不前,大概今后也无法有大的改善了。在下文中,我们不妨使用 8ms作为典型定位时间。
2.数据传输
持续传输率主要取决于盘片的转速(线速度)和存储密度,最新的典型值为80MB/s。虽然磁盘转速难以提高,但是存储密度却在逐年改善。巨磁阻、垂直磁记录等一系列新技术的采用,不但大大提高了磁盘容量,也同时带来了更高的持续传输率。
显然,I/O的粒度越大,传输时间在总时间中的比重就会越大,因而磁盘利用率和吞吐量就会越大。简单的估算结果如表1所示。如果进行大量4KB的随机I/O,那么磁盘在99%以上的时间内都在忙着定位,单个磁盘的吞吐量不到500KB/s。但是当I/O大小达到1MB的时候,吞吐量可接近50MB /s。由此可见,采用更大的I/O粒度,可以把磁盘的利用效率和吞吐量提高整整100倍。因而必须尽一切可能避免小尺寸I/O,这正是预读算法所要做的。
表1随机读大小与磁盘性能的关系
一.设备-------- 影响磁盘性能的因素
硬盘的转速影响硬盘的整体性能。一般情况下转速越大,性能会越好。
硬盘的性能因素主要包括两个:1.平均访问时间2传输速率。
平均访问时间包括两方面因素:
平均寻道时间(Average Seek Time)是指硬盘的磁头移动到盘面指定磁道所需的时间。一般在3ms至15ms之间。
平均旋转等待时间(Latency)是指磁头已处于要访问的磁道,等待所要访问的扇区旋转至磁头下方的时间。一般在2ms至6ms之间。
传输速率(Data Transfer Rate) 硬盘的数据传输率是指硬盘读写数据的速度,单位为兆字节每秒(MB/s)。磁盘每秒能传输80M~320M字节。
传输速率包括内部传输速率和外部传输速率。
内部传输率(Internal Transfer Rate) 也称为持续传输率(Sustained Transfer Rate),它反映了硬盘缓冲区未用时的性能。内部传输率主要依赖于硬盘的旋转速度。
外部传输率(External Transfer Rate)也称为突发数据传输率(Burst Data Transfer Rate)或接口传输率,它标称的是系统总线与硬盘缓冲区之间的数据传输率,外部数据传输率与硬盘接口类型和硬盘缓存的大小有关。STAT2 的传输速率在300MB/s级别。
IOPS概念
IOPS (Input/Output Per Second)即每秒的输入输出量(或读写次数),是衡量磁盘性能的主要指标之一。IOPS是指单位时间内系统能处理的I/O请求数量,一般以每秒处理的I/O请求数量为单位,I/O请求通常为读或写数据操作请求。随机读写频繁的应用,如OLTP(Online Transaction Processing),IOPS是关键衡量指标。另一个重要指标是数据吞吐量(Throughput),指单位时间内可以成功传输的数据数量。对于大量顺序读写的应用,如电视台的视频编辑,视频点播VOD(Video On Demand),则更关注吞吐量指标。
IOPS计算方法
传统磁盘本质上一种机械装置,如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。
Sequential Read IOPS,100%顺序负载读情况下的IOPS。
Sequential Write IOPS,100%顺序写负载情况下的IOPS。
IOPS的测试benchmark工具主要有Iometer, IoZone, FIO等,可以综合用于测试磁盘在不同情形下的IOPS。对于应用系统,需要首先确定数据的负载特征,然后选择合理的IOPS指标进行测量和对比分析,据此选择合适的存储介质和软件系统。
IOPS实测数据
下图是一块西数 320G 7200转普通硬盘在HD Tune下IOPS的测试数据
下图是OCZ Vertex SSD固态硬盘的测试数据
可以看到在各种数据块大小的测试数据,SSD固态硬盘的IOPS都远远领先于普通硬盘,在512byte的情况下固态硬盘是普通硬盘的100多倍。
IOPS参考数据
下面的磁盘IOPS数据来自http://en.wikipedia.org/wiki/IOPS,给大家一个基本参考。
Device
IOPS
Interface
Notes
7200 RPM SATA drives |
~90 IOPS[citation needed] |
SATA II |
|
10k RPM SATA drives, 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[citation needed] |
SAS |
|
15k RPM Serial Attached SCSIdrives |
~180 IOPS[citation needed] |
SAS |
|
10k RPM SATA drives, 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[citation needed] |
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.[5] |
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.[6] |
OCZ Vertex 3 SATA III SSD |
Up to 60,000 IOPS |
SATA III |
Random Write 4KB (Aligned) |
Texas Memory Systems
RamSan-20
|
120,000+ Random Read/Write IOPS[7] |
PCIe |
Include RAM cache and UltraCapacitor to preserve the memory non-volatile |
ioDrive, a PCI-Express card with Flash |
140,000 Read IOPS, 135,000 Write IOPS [8] |
PCIe |
|
ioDrive Duo |
250,000+ IOPS [9] |
PCIe |
|
Violin Memory
Violin 3200
|
250,000+ Random Read/Write IOPS[10] |
PCIe /FC/Infiniband/iSCSI |
Flash Memory Array |
DDRdrive X1, a May 2009 PCI Express based solid-state drive |
300,000+ (512B Random Read IOPS) and 200,000+ (512B Random Write IOPS)[11][12][13][14] |
PCIe |
|
OCZ Z-Drive R4 PCI-Express SSD |
Up to 330,000 IOPS |
PCIe |
Random Write 4KB |
Texas Memory Systems
RamSan-630 Appliance
|
1,000,000+ Random Read/Write IOPS[15] |
FC / InfiniBand |
Fusion-io ioDrive Octal
ioDrive Octal (single PCI Express card)
|
1,180,000+ Random Read/Write IOPS[16] |
PCIe |
3、 RAID 5 (可以理解为是RAID 0和RAID 1的折衷方案,但没有完全使用RAID 1镜像理念,而是使用了“奇偶校验信息”来作为数据恢复的方式,与下面的RAID10不同。)
容错性: |
有 |
冗余类型: |
奇偶校验 |
热备盘选项: |
有 |
读性能: |
高 |
随机写性能: |
低 |
连续写性能: |
低 |
需要的磁盘数: |
三个或更多 |
可用容量: |
(n-1)/n的总磁盘容量(n为磁盘数) |
典型应用: |
随机数据传输要求安全性高,如金融、数据库、存储等。 |
图3
RAID 5 是一种存储性能、数据安全和存储成本兼顾的存储解决方案。 以四个硬盘组成的RAID 5为例,其数据存储方式如图4所示:图中,Ap为A1,A2和A3的奇偶校验信息,其它以此类推。由图中可以看出,RAID 5不对存储的数据进行备份,而是把数据和相对应的奇偶校验信息存储到组成RAID5的各个磁盘上,并且奇偶校验信息和相对应的数据分别存储于不同的磁盘 上。当RAID5的一个磁盘数据发生损坏后,利用剩下的数据和相应的奇偶校验信息去恢复被损坏的数据。
RAID 5可以理解为是RAID 0和RAID 1的折衷方案。RAID 5可以为系统提供数据安全保障,但保障程度要比Mirror低而磁盘空间利用率要比Mirror高。RAID 5具有和RAID 0相近似的数据读取速度,只是多了一个奇偶校验信息,写入数据的速度比对单个磁盘进行写入操作稍慢。同时由于多个数据对应一个奇偶校验信息,RAID 5的磁盘空间利用率要比RAID 1高,存储成本相对较低。
4、 RAID 5 (可以理解为是RAID 0和RAID 1的折衷方案,但没有完全使用RAID 1镜像理念,而是使用了“奇偶校验信息”来作为数据恢复的方式)
图4
RAID10也被称为镜象阵列条带。象RAID0一样,数据跨磁盘抽取;象RAID1一样,每个磁盘都有一个镜象磁盘, 所以RAID 10的另一种会说法是 RAID 0+1。RAID10提供100%的数据冗余,支持更大的卷尺寸,但价格也相对较高。对大多数只要求具有冗余度而不必考虑价格的应用来说,RAID10提 供最好的性能。使用RAID10,可以获得更好的可靠性,因为即使两个物理驱动器发生故障(每个阵列中一个),数据仍然可以得到保护。RAID10需要4 + 2*N 个磁盘驱动器(N >=0), 而且只能使用其中一半(或更小, 如果磁盘大小不一)的磁盘用量, 例如 4 个 250G 的硬盘使用RAID10 阵列, 实际容量是 500G。
RAID总结:
类型 |
读写性能 |
安全性 |
磁盘利用率 |
成本 |
应用方面 |
RAID0 |
最好(因并行性而提高) |
最差(完全无安全保障) |
最高(100%) |
最低 |
个人用户 |
RAID1 |
读和单个磁盘无分别,写则要写两边 |
最高(提供数据的百分之百备份) |
差(50%) |
最高 |
适用于存放重要数据,如服务器和数据库存储等领域。 |
RAID5 |
读:RAID 5=RAID 0(相近似的数据读取速度)
写:RAID 5<对单个磁盘进行写入操作(多了一个奇偶校验信息写入)
|
RAID 5<RAID 1 |
RAID 5>RAID 1 |
RAID 5<RAID 1 |
是一种存储性能、数据安全和存储成本兼顾的存储解决方案。 |
RAID10 |
读:RAID10=RAID0
写:RAID10=RAID1
|
RAID10=RAID1 |
RAID10=RAID1(50%) |
RAID10=RAID1 |
集合了RAID0,RAID1的优点,但是空间上由于使用镜像,而不是类似RAID5的“奇偶校验信息”,磁盘利用率一样是50% |
转载请注明:
本文转自:http://www.liusuping.com/storage/iops-ceshi-shuju.html
分享到:
相关推荐
IOPS的数值会随系统配置而有很大的不同,依测试者在测试时的控制变因而异,控制变因包括读取及写入的比例、其中循序访问及随机存取的比例及配置方式、线程数量及访问队列深度,以及数据区块的大小。其他因素也会影响...
在本文中,我们将深入探讨如何在Zabbix中监控磁盘IOPS(每秒输入/输出操作次数),这是一个关键性能指标,用于评估存储系统的繁忙程度和响应速度。 IOPS,全称Input/Output Operations Per Second,是衡量磁盘性能...
在讨论IOPS的计算方法时,文章指出,IOPS的计算结果与测试参数和环境密切相关,包括随机或顺序读写、数据块大小、磁盘数量和RAID级别等。如果不同的存储厂商使用不同的测试参数和环境,那么IOPS的计算结果将没有可比...
因此对比测量磁盘 IOPS 时,必须在同样的测试基准下进行,即便如此也会产生一定的随机不确定性。 队列深度是影响磁盘性能的重要因素,NCQ、SCSI TCQ、PATA TCQ 和 SATA TCQ 技术可以提高磁盘性能。_NCQ(Native ...
Linux IOPS 测试文档是一份详细的测试指南,旨在帮助用户使用 FIO 工具来测试 Linux 系统的磁盘 IOPS Performance。FIO 是一个功能强大且灵活的测试工具,支持 13 种不同的 I/O 引擎,包括 sync、mmap、libaio、...
通过理解和掌握不同RAID级别的写惩罚及IOPS计算方法,可以帮助企业在规划Citrix虚拟桌面项目时更准确地评估存储需求,从而做出更合理的资源配置决策。此外,还需要考虑到其他因素如读写比例、缓存策略等对性能的影响...
Linux 使用 FIO 测试磁盘IOPS是一种评估存储性能的重要方法。FIO,全称 Flexible I/O Tester,是一个强大的 I/O 负载生成器,适用于各种存储设备的压力测试和性能基准测试。以下是对FIO及其使用的详细说明: **1. ...
根据文件描述,7200转每分钟(RPM)的SATA磁盘和10000 RPM的SATA磁盘IOPS参数分别达到了10000次和15000次。转速越高,理论上磁盘的随机访问性能越好,因此IOPS值也越高。 2. SAS磁盘:SAS(Serial Attached SCSI)...
Zabbix是一款广泛使用的开源网络监控工具,能够实时监控网络状态和服务器资源,包括磁盘IOPS(每秒输入/输出操作次数)。本文将详细介绍如何使用Zabbix监控磁盘IOPS,并结合提供的脚本和模板进行说明。 首先,我们...
ULT 存储 IOPS 性能测试报告 本报告主要测试 ULT 存储(15*600G 15K RPM RAID5,1*HOTSPARE)的 IOPS 性能,并对虚拟化存储卷的规划(Lun sizing)进行简单的测试和验证。测试结果表明,ULT 存储能够提供的最大 ...
测试方法: [root@localhost ~]# fio -filename=/dev/sdb1 -direct=1 -iodepth 1 -thread -rw=randrw -rwmixread=70 -ioengine=psync -bs=16k -size=200G -numjobs=30 -runtime=100 -group_reporting -name=mytest1
Iometer 既是工作负载生成器(也就是说,它可以进行...它可以被配置为模拟任何程序或者基准测试程序的磁盘和网络I/O的负载,或者用来产生整个综合的I/O负载。它也可以用来产生并测量单系统或者多系统(网络)的负载。
3. **缓存策略**:利用内存作为缓存可以减少磁盘I/O,从而提高IOPS。例如,使用Btrfs或ZFS等文件系统可以实现自动缓存。 4. **并发处理**:通过并行执行多个I/O请求,可以增加系统处理IOPS的能力。 5. **软件优化*...
4. **IOPS测试**:Input/Output Operations Per Second,衡量硬盘每秒能完成多少次输入输出操作,对于数据库服务器和虚拟化环境尤其重要。 5. **基准测试**:通过标准测试模式对比不同硬盘的性能,便于用户选择合适...
本文将探讨在使用`fio`工具进行磁盘性能测试时,多线程对IOPS(每秒输入输出操作次数)的影响。 #### fio工具简介 `fio`是一款用于进行文件I/O性能测试的强大工具,它可以模拟各种读写模式,并提供丰富的参数设置...
标题中的“Parkdale,磁盘性能测试”是指一个专门用于评估和分析计算机硬盘或存储设备性能的工具。这个工具小巧轻便,文件大小不到2MB,因此不会占用大量的磁盘空间,适合各种类型的用户,包括那些对系统资源管理有...
在使用fio进行磁盘I/O性能测试时,libaio(Linux AIO,异步I/O)模式因其高效性被广泛采用。为了深入理解libaio模式下fio的工作原理,我们在libaio读写处理部分添加了调试代码。通过这些代码,我们发现每个线程都是...
5. **性能指标监控**:在测试过程中,`consume.exe`可能会记录和展示关键性能指标,如IOPS(每秒输入/输出操作数)、吞吐量、响应时间等,这些数据对于分析磁盘性能至关重要。 6. **稳定性检查**:长时间运行的压力...
磁盘I/O(Input/Output)测试工具是评估和优化系统存储性能的关键工具,尤其在大数据、数据库和高性能计算等领域中至关重要。FIO(Flexible I/O Tester)是一款强大的开源工具,能够模拟多种I/O工作负载,对磁盘、...