ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

硬盘IO性能估算入门

2021-10-29 13:33:58  阅读:305  来源: 互联网

标签:入门 耗时 IOPS IO Sas 存储设备 硬盘


一、硬盘IO的类型
IO是输入输出指令,操作系统向存储控制器下发一个读或者写数据的操作指令,控制器下发地址和数据给存储设备,并返回结果给存储控制器,最后到达操作系统。操作系统的一个IO可能会产生多个实际的存储设备IO。一般可以分为:

1、连续Sequential IO、随机Random IO
如果本次IO给出的初始地址和上次IO的结束地址是连续或者接近的,磁头可以很快访问到数据,这样的多个IO就是连续IO。如果前后两次IO操作的地址相差比较大,磁头需要较长距离的移动,就是随机IO。在做连续 IO的时候,磁头几乎不换道连接工作,可以快速读取和写入大量数据。

2、顺序Queue IO、并发Burst IO
如果存储设备每次只执行一个IO指令,就是顺序IO;当存储设备能同时执行多个IO命令时,控制器发送IO指令后不等回应就继续下发IO指令,称为并发IO。普通磁盘一次只能响应一个IO指令,但RAID等存储设备的IO操作是并发的。对顺序IO的设备,调整IO队列深度,性能不能产生变化。

二、硬盘性能衡量
衡量硬盘性能,最直观的就是IOPS和吞吐量。

1、IOPS,每秒处理的IO次数
指存储设备(HDD、SSD、SAN)单位时间内能处理的IO请求数量,对随机读写频繁的应用,如OLTP数据库、图片、信息,是最关键的衡量指标。IOPS数值受读写比例、随机IO、IO大小、队列深度等因数影响。数据库通常访问一系列不连续的数据,根据文件物理位置,需要很多次IO才能完成。所以需要随机IO高的设备。

2、Throughput,吞吐量
指单位时间内可以成功传输的数据数量,传输包括读和写的总和。对于大文件或者流媒体的应用,拥有大量顺序读写,则更关注数据吞吐量。数据吞吐量还受到存储设备接口速度限制,比如IDE、SATA、SAS、FC,SSD使用PCIE Nvme接口最佳,但同时期推出的接口都大于存储设备吞吐量上限。

三、硬盘监控指标
通过iostat等工具观察存储设备状况,我们一般关注下面指标。

1、r/s、w/s,每秒读写IO次数。
IOPS = r/s + w/s。读和写的能力,在不同设备中实际是有差异的,但是我们经常简化差异,混合称为IOPS。

2、avgrq-sz,每次IO请求的平均大小
如果平均小于32K认为随机存取为主,大于32K则是顺序存储为主。

3、avgqu-sz,等待执行的IO队列长度
 IO请求数超出存储设备处理能力,待执行队列就会加长,该值应该小于2.

4、await,等待执行的IO耗时
 等待耗时取决svctm以及IO队列长度,该值应该接近svctm。

5、 svctm,IO服务时间
处理IO请求的耗时,比如机械硬盘耗时,由寻道时间、旋转延迟和传输时间组成。

6、uitl,存储设备IO利用率
存储设备的资源利用情况,队列争用程度成越高值越大。

四、存储性能
1、机械硬盘的性能计算
对机械硬盘来说,IOPS = 1000 / (寻道时间 + 旋转延时 + 传输时间)。
a、寻道时间,磁头移动到对应磁道上的耗时。
Sata 7200RPM,平均寻道时间是9ms。
Sas 10000RPM,平均寻道时间是6ms。
Sas 15000RPM,平均寻道时间是4ms。
 b、旋转延时,盘片旋转至需要的扇区移至磁头下方耗时。
平均为磁盘旋转一周所需时间的一半,60 * 1000/7200/2。
Sata 7200RPM,旋转延时 60 * 1000 / 7200 / 2 = 4.17ms。
Sas 10000RPM,旋转延时3ms。
Sas 15000RPM,旋转延时约2ms。
c、传输时间,传输读写数据耗时。
平均数据大小除以接口传输率,耗时很小粗略计算可以忽略。
Sata,300~600MB/s。
Sas,3Gbit/s。
FC,2~4Gbit/s。
NVME,32Gbit/s。
根据上述信息,我们常用的Sas 15000RPM,MySQL应用16k块,机械硬盘IOPS = 1000 / (4 + 2 + 16K / 375K) = 165。

  1. SSD硬盘IO计算
    固态硬盘没有寻道时间和旋转时间。IO耗时是通过地址查找数据耗时,根据芯片颗粒SLC、MLC,中控芯片、队列深度32~64、接口Sata、PCIE的不同,一般负载非太高时是相对固定值(控制在60%利用率)。
    IOPS = 1000 / IO耗时。因为SSD比较固定,比如Intel 320 SSD对8K avgrq-sz耗时0.1ms,1000/0.1ms=10000 IOPS。具体参考后续文章。

3、iops估算raid盘数
a、如果单盘不能满足性能需求,需要通过Raid实现,计算所需硬盘数公式如下。
Raid1、10,Drive IOPS = Read IOPS + 2Write IOPS
Raid3、5,Drive IOPS = Read IOPS + 4
Write IOPS
Raid6,Drive IOPS = Read IOPS + 6*Write IOPS
b、设需要IOPS 5000,读写比例2:1,则RAID10后IOPS需求为。
RAID10,(2/3) * 5000 + 2 * (1/3) * 5000 = 6666 IOPS
c、已知Sas 15000RPM机械硬盘IOPS165。
5000IOPS所需硬盘个数, 6666 / 165 = 40。

4、常见存储设备参考性能,avgrq-sz 8~16K
5400 rpm SATA,60 IOPS
7200 rpm SATA,70 IOPS
10000 rpm SAS,110 IOPS
15000 rpm SAS,150 IOPS,Sequential RW 180MB/s、Radom RW 15MB/s。
10000 rpm FC,125 IOPS
15000 rpm FC,150 IOPS
SSD Sata,3000~40000 IOPS,R 400MB/s、W 250MB/s。
SSD PCIE,20000~40000 IOPS,R 500MB/s、W 300MB/s。
内存,1000000+ IOPS,30~60 GB/s。

标签:入门,耗时,IOPS,IO,Sas,存储设备,硬盘
来源: https://www.cnblogs.com/muahao/p/15480031.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有