作者:【吴业亮】
转载自博客:http://blog.csdn.net/wylfengyujiancheng

一、什么是IOPS

IOPS(Input/Output Operations Per Second)是一个用于电脑存储设备(如硬盘(HDD)、固态硬盘(SSD)或存储区域网络(SAN))性能测试的量测方式,可以视为是每秒的读写次数。和其他性能测试一样,存储设备制造商提出的IOPS不保证就是实际应用下的性能。

IOPS可以用应用程序来量测,例如一开始由微软开发的Iometer,像IOzone及FIO也有类似功能,IOPS主要会用在服务器,以找到最佳的存储配置。

IOPS的数值会随系统配置而有很大的不同,依测试者在测试时的控制变因而异,控制变因包括读取及写入的比例、其中循序访问及随机存取的比例及配置方式、线程数量及访问队列深度,以及数据区块的大小。其他因素也会影响IOPS的结果,例如系统设置、存储设备的驱动程序、操作系统后台运行的作业等。若在测试固态硬盘时,是否先进行预调(preconditioning)机制也会影响IOPS的结果

二、性能特性

最常量测的性能特性是随机存取及循序访问时的IOPS。循序访问是访问存储设备中相邻位置的数据,一般和较大的数据区块访问有关,例如128 KB,随机存取是访问存储设备中非相邻位置的数据.一般访问的数据区块比较少,例如4 KB。

最常见的性能特性如下:


对于硬盘或是其他类似的存储设备,其随机存取IOPS主要和存储设备的寻址时间有关,若是固态硬盘及其他固态电子设备,其随机存取IOPS主要和存储设备的内部控制器及记亿体接口速度有关。这两种设备的循序访问IOPS(尤其是访问大数据区块)一般会包括存储设备可以持续的最大带宽。一般循序访问的IOPS会用MB/s表示,其公式如下:

有些硬件会因为其队列深度增加而提升其性能,这多半是因为硬盘处理队列及重新排序(reordering)的先进控制器逻辑的结果,此逻辑一般称为标记命令队列(TCQ)或原生指令排序(NCQ)。企业档次的SATA硬盘,例如Western Digital Raptor及希捷的Barracuda NL配合深队列可以提升性能到100%[5]。较常用在服务器的高端SCSI硬盘,一般性能有更大的提升。

传统的硬盘读取和写入的IOPS大约相同,而大部分闪存SSD的写入速度明显比读偠慢很多,原因是无法写入一个之前写过的区域,会强制引导垃圾数据回收功能。因此硬件测试开始在测试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控制器,其持续写入性能和读取速度大致相近。

二、测试工具fio

1、简介
fio is an I/O tool meant to be used both for benchmark and stress/hardware verification. It has support for 19 different types of I/O engines (sync, mmap, libaio, posixaio, SG v3, splice, null, network, syslet, guasi, solarisaio, and more), I/O priorities (for newer Linux kernels), rate I/O, forked or threaded jobs, and much more. It can work on block devices as well as files. fio accepts job descriptions in a simple-to-understand text format. Several example job files are included. fio displays all sorts of I/O performance information, including complete IO latencies and percentiles. Fio is in wide use in many places, for both benchmarking, QA, and verification purposes. It supports Linux, FreeBSD, NetBSD, OpenBSD, OS X, OpenSolaris, AIX, HP-UX, Android, and Windows.

2、安装

 yum install fio -y
  • 1

3、用法:

fio -filename=/dev/sdb -direct=1 -iodepth 1 -thread -rw=read -ioengine=psync -bs=16k -size=200G -numjobs=30 -runtime=1000 -group_reporting -name=test
  • 1

说明:
filename=/dev/sdb 测试文件名称,通常选择需要测试的盘的data目录。
direct=1 测试过程绕过机器自带的buffer。使测试结果更真实。
rw=randwrite 测试随机写的I/O
rw=randrw 测试随机写和读的I/O
bs=16k 单次io的块文件大小为16k
bsrange=512-2048 同上,提定数据块的大小范围
size=5G 本次的测试文件大小为5g,以每次4k的io进行测试。
numjobs=30 本次的测试线程为30个.
runtime=1000 测试时间为1000秒,如果不写则一直将5g文件分4k每次写完为止。
ioengine=psync io引擎使用pync方式
rwmixwrite=30 在混合读写的模式下,写占30%
group_reporting 关于显示结果的,汇总每个进程的信息。
lockmem=1G 只使用1g内存进行测试。
zero_buffers 用0初始化系统buffer。
nrfiles=8 每个进程生成文件的数量。

4k随机读:

 fio -filename=/dev/sdc -direct=1 -iodepth=64 -thread=8 -rw=randread -ioengine=libaio -bs=4k -size=1G -numjobs=32 -runtime=600 -group_reporting -name=randread4k-sdc-output=randread4k-sdc.log
  • 1

4K随机写:

 fio -filename=/dev/sdc -direct=1 -iodepth=64 -thread=8 -rw=randwrite -ioengine=libaio -bs=4k -size=1G -numjobs=32 -runtime=600 -group_reporting -name=randwrite4k-sdc-output=randwrite4k-sdc.log
  • 1

4M顺序读:

fio -filename=/dev/sdc -direct=1 -iodepth=64 -thread=8 -rw=read -ioengine=libaio -bs=4m -size=1G -numjobs=32 -runtime=600 -group_reporting -name=read4m-sdc -output=read4m-sdc.log
  • 1

4M顺序写:

fio -filename=/dev/sdc -direct=1 -iodepth=64 -thread=8 -rw=write -ioengine=libaio -bs=4m -size=1G -numjobs=32 -runtime=600 -group_reporting -name=write4m-sdc -output=write4m-sdc.log
  • 1

混合读写:
读写比例 70:30

fio -filename=/dev/vda -direct=1 -iodepth 1 -thread -rw=randrw -rwmixread=70 -ioengine=libaio -bs=4k -size=10G -numjobs=30 -runtime=100 -group_reporting -name=readandwrite73
  • 1

读写比例30:70

fio -filename=/dev/vda -direct=1 -iodepth 1 -thread -rw=randrw -rwmixread=30 -ioengine=libaio -bs=4k -size=1

【云存储】IOPS概念及测试方法相关推荐

  1. Microsoft Azure 云存储服务概念

    本文包括了以下几点内容: 什么是Azure云存储服务? 云存储服务分类 云存储服务的优势 什么是Azure云存储服务? Azure 云存储服务可以说是Azure 上最重要的SAAS服务了. 在Azur ...

  2. OSS云存储概念、在阿里云中如何创建、控制台上传下载删除文件以及访问日志设置

    一.阿里云OSS云存储简介 1.什么是阿里云oss云存储 阿里云对象存储服务(Object Storage Service,简称 OSS),是阿里云提供的海量.安全.低成本.高可靠的云存储服务.其数据 ...

  3. 安防业内人士对云存储未来的发展充满信心

    近年来,全球数据量暴涨,世界进入大数据时代,存储系统面临严峻挑战,云存储(cloudstorage)概念应运而生.将目光聚焦于安防行业,随着数字安防技术的普及,监控技术逐渐往高清化.网络化及智能化发展 ...

  4. 哪种云存储服务最适合你?

    早在2007年的时候,Dropbox首席执行官Drew Houston实在受不了经常弄丢USB驱动器,个人和小公司云存储这个概念还是很前卫的想法.而如今,每个人似乎都在提供便宜或免费的云存储服务. 这 ...

  5. 阿里云开发者大会:资源加应用酝酿云存储变局

    云存储的概念虽然是近两年提出的,但其实际应用早在10多年前便已随着基于互联网的 Email 系统而开始.最早由Hotmail 提出这一概念,如今 Gmail 成了这一领域的象征,其实质都是建立在云存储 ...

  6. 五十二、微信小程序云开发中的云存储

    @Author:Runsen 暑假很长,明年就是找工作的时候了.这个时候必须比之前还要拼命. 百翻无下,努力就是我的代言词.今天,正式进入云存储的学习.云存储这个概念在之前学习的时候没有注意到. 下面 ...

  7. 云计算的认识和看法_云存储已经成为存储的未来,你的存储跟上节奏了吗?

    云计算是目前业界最关注的话题,其实云计算让很多人云里雾里.而云存储则是存储的未来.云存储这个概念的出现,在一定程度上改变了我们对于传统存储模式的看法.但是云存储想必让很多人迷惑,今天我们就来聊聊云存储 ...

  8. 380免费云存储_从四个方面分析:云存储服务的特点、影响

    云存储就是将储存资源放到云上供人存取的一种新兴方案,使用者可以在任何时间.任何地方,透过任何可连网的装置连接到云上方便地存取数据.那么,云存储服务有什么特点,会给我们带来一些什么样的影响呢? 云存储是 ...

  9. 存储服务器在监控中的作用,监控项目中存储服务器IPSAN云存储方案的优劣势对比...

    <监控项目中存储服务器IPSAN云存储方案的优劣势对比>由会员分享,可在线阅读,更多相关<监控项目中存储服务器IPSAN云存储方案的优劣势对比(4页珍藏版)>请在人人文库网上搜 ...

  10. 云存储:对象存储管理与安全

    为降低云服务器负载和成本,一般需要将网站静态资源.图片.音视频.日志.下载资源等海量文件存储在更低单价的存储类型上,并配合CDN.图片处理.媒体转码.数据处理等服务,给客户提供更好的体验和更多服务. ...

最新文章

  1. 英特尔在移动市场另辟蹊径
  2. 高性能存储之--快速理解redis(简版)
  3. pandas基于列表内容对dataframe数据行进行筛选(isin函数)实战:Filter DataFrame rows on a list of values
  4. C#多线程学习5——多线程的自动管理(定时器)
  5. ks检验正态分布结果_数据分析基础(2)——正态分布检验
  6. 我的世界java1.15.2光影_快去打卡吧!海南首个“360光影馆”落户三亚
  7. 1595 hdu find the longest of the shortest
  8. java 获取手机归属地,引起net.UnknownHostException错误
  9. Linux内核crypto子系统的调用逻辑
  10. http sxyk.cdn_Discuz x3 开启cdn和https后链接修改教程
  11. 脚本化CSS类-HTML5 classList属性
  12. nodejs 模板引擎ejs的使用
  13. 网络安全技术心得体会
  14. HTML加载图片跨域
  15. 遗传算法(GA)求解车辆路径问题(VRP)——matlab实现
  16. pm2部署next项目
  17. 关于电子科技大学大学生早自习情况调查
  18. Python爬虫,爬取2020年软科中国大学排名并进行数据清洗与可视化输出
  19. 【01Studio MaixPy AI K210】10.LCD
  20. YOLOv7 训练前手动计算锚定框

热门文章

  1. hdu5773 LIS+贪心
  2. 网易免费邮箱服务器,网易免费邮箱重新免费开放 POP3/SMTP 服务
  3. 用Python采集微博视频,随时随地发现新鲜事~
  4. 数据库设计阶段 各阶段的任务
  5. 【清北学堂】dwarf
  6. 数据结构-二分查找(含全部代码)
  7. MGV3000_YST_免费刷机固件包_原生设置无密码_支持外置USB无线网卡
  8. 计算机 澳洲 博士后 要考雅思么,博士后移民澳大利亚(澳洲做科研博士后)
  9. CSS两种盒模型(标准盒模型IE盒模型)
  10. html 选择列表框,列表框的selected属性