IOPS
IOPS(Input/Output Operations Per Second)是一个用于电脑保存设备(如硬盘(HDD)、固态硬盘(SSD)或存储区域网络(SAN))性能测试的量测方式,可以视为是每秒的读写次数。和其他性能测试一様,保存设备制造商提出的IOPS不保证就是实际应用下的性能[1][2]。
IOPS可以用应用程序来量测,例如一开始由因特尔开发的Iometer,像IOzone及FIO也有类似功能[3],IOPS主要会用在服务器,以找到最佳的保存组态。
IOPS的数值会随系统组态而有很大的不同,依测试者在测试时的控制变因而异,控制变因包括读取及写入的比例、其中循序访问及随机访问的比例及配置方式、线程数量及访问队列深度,以及数据区块的大小[1]。其他因素也会影响IOPS的结果,例如系统设置、保存设备的驱动程序、操作系统背景运行的作业等。若在测试固态硬盘时,是否先进行预调(preconditioning)机制也会影响IOPS的结果[4]。
性能特性

最常量测的性能特性是随机访问及循序访问时的IOPS。循序访问是访问保存设备中相邻位置的数据,一般和较大的数据区块访问有关,例如128 KB,随机访问是访问保存设备中非相邻位置的数据.一般访问的数据区块比较少,例如4 KB。
最常见的性能特性如下:
量测 | 说明 |
---|---|
总IOPS | 每秒读写次数的总和(混合读取及写入测试) |
随机读取IOPS | 每秒平均的随机读取次数 |
随机写入IOPS | 每秒平均的随机写入次数 |
循序读取IOPS | 每秒平均的循序读取次数 |
循序写入IOPS | 每秒平均的循序写入次数 |
对于硬盘或是其他类似的机电保存设备,其随机访问IOPS主要和保存设备的寻址时间有关,若是固态硬盘及其他固态电子设备,其随机访问IOPS主要和保存设备的内部控制器及记亿体接口速度有关。这两种设备的循序访问IOPS(尤其是访问大数据区块)一般会包括保存设备可以持续的最大带宽[1]。一般循序访问的IOPS会用MB/s表示,其公式如下:
(结果一般会转换为MB/s)
有些硬件会因为其队列深度增加而提升其性能,这多半是因为硬盘处理队列及重新排序(reordering)的先进控制器逻辑的结果,此逻辑一般称为标记命令队列(TCQ)或原生指令排序(NCQ)。企业等级的SATA硬盘,例如Western Digital Raptor及希捷的Barracuda NL配合深队列可以提升性能到100%[5]。较常用在服务器的高端SCSI硬盘,一般性能有更大的提升。
传统的硬盘读取和写入的IOPS大约相同,而大部份闪存SSD的写入速度明显比读取慢很多,原因是无法写入一个之前写过的区域,会强制启动垃圾数据回收功能[6][7][8]。因此硬件测试开始在测试IOPS性能时,分开测试写入和读取。
像Intel X25-E等较新的闪存SSD固态硬盘其IOPS会比传统的硬盘要高,在Xssist进行的一个测试中,用IOmeter软件,4 KB随机访问,读取/写入比例为70/30,队列深度4,Intel X25-E 64 GB G1的IOPS一开始有 10000 IOPs,在八分钟后快速掉到4000 IOPS,之后的42分钟持续的下降,自第50分钟起到第八小时之间,IOPS在3000至4000之间变化[9]。即使第50分钟IOPS快速下降,X25-E的IOPS仍较传统硬盘要高。像OCZRevoDrive 3 x2 PCIe用SandForce控制器,其持续写入性能和读取速度大致相近[10]。
一些IOPS的范例
硬盘机
随机访问处理下,一些常见的IOPS平均值,计算方式是1/(寻址时间 + 回应时间) = IOPS:
设备 | 形式 | IOPS | 接口 | 注解 |
---|---|---|---|---|
7,200 RPM SATA硬盘机 | 硬盘机 | ~75-100 IOPS[2] | SATA 3 Gbit/s | |
10,000 RPM SATA硬盘机 | 硬盘机 | ~125-150 IOPS[2] | SATA 3 Gbit/s | |
10,000 rpm SAS硬盘机 | 硬盘机 | ~140 IOPS[2] | SAS(串列SCSI) | |
15,000 rpm SAS硬盘机 | 硬盘机 | ~175-210 IOPS[2] | SAS(串列SCSI) | |
固态设备
设备 | 形式 | IOPS | 接口 | 注解 |
---|---|---|---|---|
英特尔Intel X25-M G2(MLC) | SSD | ~8,600 IOPS[11] | SATA 3 Gbit/s | 英特尔的数据表[12]声称在4 KB数据的写入及读取时,分别有有6,600/8,600 IOPS (80 GB/160 GB版本)及35,000 IOPS的速度。 |
英特尔 Intel X25-E (SLC) | SSD | ~5,000 IOPS[13] | SATA 3 Gbit/s | 英特尔数据表[14]声称在写入和读取的速度为3,300 IOPS及35,000 IOPS。写入和读取混和时为5,000 IOPS。英特尔的X25-E G1比X25-M G2快了约三倍[15] |
G.Skill Phoenix Pro | SSD | ~20,000 IOPS[16]。 | SATA 3 Gbit/s | SandForce-1200为基础的固态硬件,配合加强版的固件,最快可到50,000 IOPS,性能测试的结果是随机读取可到~25,000 IOPS,随机写入可到~15,000 IOPS[16]。 |
OCZ Vertex 3 | SSD | 最高可到60,000 IOPS[17] | SATA 6 Gbit/s | 随机写入4 KB (Aligned) |
Corsair Force Series GT | SSD | 最高可到85,000 IOPS[18] | SATA 6 Gbit/s | 240 GB Drive,循序读取为555 MB/s,循序写入为525 MB/s。随机写入4 KB (Aligned) |
参考数据
- Lowe, Scott. . techrepublic.com. 2010-02-12 [2011-07-03]. (原始内容存档于2011-06-29).
- . 2012-08-03 [2013-08-15]. (原始内容存档于2013-08-09).
- Axboe, Jens. . [2010-06-04]. (原始内容存档于2010-05-12).(source available at http://git.kernel.dk/ (页面存档备份,存于))
- Smith, Kent. (PDF). SandForce.com. 2009-08-11 [2015-05-05]. (原始内容存档 (PDF)于2015-06-29).
- . StorageReview.com. 2006-07-13 [2013-05-13]. (原始内容存档于2013-05-05).
- Hu, X.-Y. and E. Eleftheriou, R. Haas, I. Iliadis, R. Pletka. . IBM. 2009. CiteSeerX: 10.1.1.154.8668
.
- (PDF). OCZ Technology. [2010-05-31]. (原始内容 (PDF)存档于2012-05-26).
- . Intel. [2010-05-31]. (原始内容存档于2010-05-26).
- . 2010-03-27 [2010-04-01]. (原始内容存档于2010-05-03).
- . 2011-06-28 [2011-06-30]. (原始内容存档于2011-07-01).
- Schmid, Patrick; Roos, Achim. . 2008-09-08 [2011-08-02].
- (PDF). [2010-07-20]. (原始内容 (PDF)存档于2010-08-12).
- 1. . Tomshardware.com. [2013-05-13].
- (PDF). [2009-03-18]. (原始内容 (PDF)存档于2009-02-06).
- . May 2010 [2010-05-19]. (原始内容存档于2010-05-16).
- . Tweakpc.de. [2013-05-13]. (原始内容存档于2013-02-12).
- (PDF). [2015-06-30]. (原始内容 (PDF)存档于2011-06-26).
- Force Series™ GT 240GB SATA 3 6Gb/s Solid-State Hard Drive. . Corsair.com. [2013-05-13]. (原始内容存档于2013-01-19).