文章目录

  • SSD性能指标
    • 主要性能指标
      • IOPS
      • 带宽(吞吐量)
      • 延迟
    • 条件指标
      • 访问方式
      • 队列深度(iodepth):
  • fio指标解读
    • 配置参数.fio
    • fio输出结果分析
  • 参考文档

SSD性能指标

主要性能指标

IOPS

每秒的IO数量。体现存储系统性能的最主要指标。现在主流的IOPS都在90K以上了(机械硬盘还在5K左右徘徊),比如模拟<4K>大小的文件读写。每秒最高能读或写90000个<4K>的文件;如果增加磁盘,则每秒IO数量就可以变多。比如增加相同的一块盘则IOPS就可以翻倍。

带宽(吞吐量)

每秒钟最大吞吐数据量的大小。每秒传输多大的数据比如500M/s。iops和带宽是正相关,因为知道每秒IO数量,和平均每个IO的大小则可以算出整体每秒数据量大小也就是带宽。IOPS * I/O size = Bandwidth。

大文件持续传输型的应用需要的是充分的带宽性能,而小文件随机读写的应用则要求足够的I/O能力。在存储领域有个不成文的规定,只要以IOPS来描述,那么就一般代表是小I/O(<32KB),以Bandwidth来描述,那就是大I/O(>32KB)。

延迟

是指完成一次IO请求所需的时间。延迟是关注存储性能时最重要的单个指标。
我们从发出请求到存储层的那一刻开始测量,并在获取请求的数据或确认数据已存储在磁盘上时停止测量。数据得到响应前需要等待的时间。

他和IOPS的区别:比如说我一个主机挂了一块SSD和100块HDD,SSD速度快其实就是延迟低,就是说我发送一条请求可以比HDD更快的返回。但是这里100块HDD的IOPS要高于SSD,因为他每秒能处理的IO要更多。

条件指标

访问方式

  1. 顺序读写:比如将一个很大的文件写入。则读取大量的是相邻的顺序的数据块。这个模式可显示最高的吞吐量。主要是针对的大容量文件读写文件性能,这时我们主要关注带宽指标。
  2. 随机访问读写。不遵循文件的先后顺序,读写操作的时候能够任意跳到某个文件,主要作用是针对零碎文件(病毒扫描、启动程序等)任务。这时我们主要关注IOPS指标。

队列深度(iodepth):

它表示平均有多少I / O请求(在运行中),也就是同时处理多少个IO。拥有队列是有益的,因为队列中的请求可以以优化的方式(通常是并行方式)提交给存储子系统。

类似于cpu处理多线程,一个cpu处理一个线程一段时间然后切换到另一个线程去处理,这样每个线程处理时间提高了,但是充分利用了CPU性能提高了多线程的性能。加大硬盘队列深度就是让硬盘不断工作,减少硬盘的空闲时间。但是代价就是提高了延迟。

不同队列深度有着不同的性能表现,通常队列深度为1时有最好的延迟表现;随着队列深度的增加,其IOPS会随之增长,QD1~QD4基本是线性提升,QD8大概是QD4的双倍,QD16又是QD8的双倍,直到获得SSD的最大IOPS(一般是32);在未达到SSD的最大IOPS时,随着队列深度的增加,其延迟增加通常并不剧烈;在达到最大IOPS后,随着队列深度的增加,其IOPS趋于稳定,但延迟通常会随队列深度的增加而线性增长

加大队列深度 -> 提高利用率 -> 获得IOPS和MBPS峰值 ->注意响应延迟在可接受的范围内
建议:也就是说队列深度最好设置到16或者32,以获得最大的IOPS。就是设置能达到最大IOPS的最小的队列深度。

  • 线程数:比如设置为8。在固态硬盘内部,单次读取耗时主要分为两部分:寻址延迟时间和传输时间。单线程的时候,即使队列深度大于1,但每个访问请求的这两步都是串行的,也就是必须先寻址然后才能传输。而多线程的时候,不同线程的这两步是可以并行的。传输完线程1的数据后就可以马上开始线程2的数据传输。也就是提升线程数可以明显提升SSD的性能。但这个提升并不是倍数关系,因为可能2线程比1线程提升很大,但是8线程并不比2线程有很大幅度的性能提升。

fio指标解读

配置参数.fio

  1. ioengine=libaio

    • libaio - Linux 原生的异步 I/O,这也是通常我们这边用的最多的测试盘吞吐和延迟的方法
    • sync - 也就是最通常的 read / write 操作
    • vsync - 使用 readv / writev,主要是会将相邻的 I/O 进行合并
    • psync - 对应的 pread / pwrite
    • pvsync / pvsync2 - 对应的 preadv / pwritev,以及 preadv2 / p writev2
  2. rw=randrw
    • read - 顺序读
    • write - 顺序写
    • trim - 顺序裁剪
    • randread - 随机读
    • randwrite - 随机写
    • randtrim - 随机裁剪
    • rw, readwrite - 混合顺序读写
    • randrw - 混合的随机读写
    • trimwrite - 顺序的裁剪 + 顺序写
  3. rwmixwrite=90 (混合模式使用)
    • 混合读写中,写占的百分比
  4. bs=4k(block size)一次io操作大小
    • 通常我们都是读写使用相同的 block,譬如 bs=4k,我们还可以用 bs=4k,16k 来设置读是 4k,但写是 16k。每次4k的io进行测试
  5. iodepth=16
    • 队列深度
  6. numjobs=8
    • 线程数,比如设置8
  7. size=512m
    • 每个线程读写的数据量521M 传输完成就结束

fio输出结果分析

https://tobert.github.io/post/2014-04-17-fio-output-explained.html

IOPS: 每秒的输入输出量(或读写次数),是衡量磁盘性能的主要指标之一;
Bw: 带宽;
slat 表示fio 提交到内核某个I/O的延迟;
clat 表示fio 内核完成某个I/O的延迟;
lat 表示从fio将请求提交给内核,再到内核完成这个I/O为止所需要的时间;
关系是 lat = slat + clat
usr:表示用户空间进程;
sys:表示内核空间进程;

参考文档

参考1
参考2
参考3
参考4
参考5
https://zhuanlan.zhihu.com/p/413839865
https://blog.csdn.net/yuesichiu/article/details/8722417
https://blog.csdn.net/qq_42776455/article/details/108793391

SSD性能指标分析与FIO指标解读相关推荐

  1. 商业分析-FAST指标解读

    本文精选自[前瞻经济学人APP] 作为一个面向行业用户,可以交流的资讯平台,前瞻经济学人APP提供行业深度资讯,有数据有行研报告.有实时产经新闻也有全球趣闻动态. 数字化导向下,消费者管理体系从GMV ...

  2. 周五话分析 | 两个指标解读用户千百种离开的姿势(跳出率与退出率)

    ▌跳出率?退出率? 王小明在五道口宇宙中心开了家服装店,专注各类 GEEK T恤. 每天人来人往, 逛逛逛试试试买买买, 晚上小店休息,所有顾客清场, 半年后,他的服装店倒闭了-- 经过统计,他得出了 ...

  3. 弘辽科技:抖音评价分析看板数据如何解读?

    抖音评价分析看板支持商家查看最新评论数据分布,筛选时间段查看近期趋势,具体指标包括:评价数.评价率.好评数.好评率.差评数.差评率.接下来一起来了解这个功能. 一.评价分析看板数据如何解读? 好评率为 ...

  4. 【项目分析】利用三原则六指标解读人工智能Project PAI项目

    本文发于微信公众帐号: 一界码农(The_hard_the_luckier) 无需授权即可转载: 甚至无需保留以上版权声明--一界码农+产品汪+创业者 个人微信号(liuhua7851) 之前写了如何 ...

  5. R语言稀疏主成分分析、因子分析、KMO检验和Bartlett球度检验分析上市公司财务指标数据...

    全文链接:http://tecdat.cn/?p=31080 R中的主成分分析(PCA)和因子分析是统计分析技术,也称为多元分析技术(点击文末"阅读原文"获取完整代码数据). 当可 ...

  6. AWR报告相关指标解读

    对AWR报告中相关指标解读 DB Time load_profile efficiency percentages SQL Statistics Segment Statistics DB Time ...

  7. 网站分析04——常用指标及方法

    个人公众号为:livandata 本文主要整理网站分析过程中的指标体系,及常用的思考方法: 1.网站分析的常用指标有多个,大体可以分为六类: 1.1.计数指标和复合指标: 计数指标:PV.UV.访客. ...

  8. python使用numpy包编写自定义函数计算SMAPE(对称平均绝对百分比误差)指标Symmetric mean absolute percentage error、SMAPE指标解读、指标使用的注

    python使用numpy包编写自定义函数计算SMAPE(对称平均绝对百分比误差)指标Symmetric mean absolute percentage error (SMAPE).SMAPE指标解 ...

  9. 回归模型和时间序列模型中的MAPE指标是什么?MAPE指标解读、MAPE越大越好还是越小越好、使用MAPE指标的注意事项

    回归模型和时间序列模型中的MAPE指标是什么?MAPE指标解读.MAPE越大越好还是越小越好.使用MAPE指标的注意事项 目录

最新文章

  1. 【组队学习】【31期】 吃瓜教程——西瓜书+南瓜书
  2. 企业架构:现代数据架构的特征
  3. 未来我们对微服务和 Serverless 架构有什么期望
  4. Apace、Ngnix、Tomcat三者关系
  5. 每天一道LeetCode-----计算n的阶乘末尾有多少个0
  6. 重置UNDO 表空间.
  7. jmeter的如何设置headers
  8. 天龙八部单机服务器修改器,天龙八部 天佛降世多功能属性修改器
  9. 计算机电源管理设置,怎么修改电脑中设置的显卡电源管理模式
  10. 用Python做出日历
  11. 【五一专属活动】向所有热爱分享的“技术劳动者”致敬
  12. 兴寿镇“春踏青,兴寿行”特色旅游线路点靓辛庄
  13. saber与matlab联合仿真
  14. 李狗蛋和二狗子因为HTTP or RPC打起来了No.135
  15. Android Studio 使用中 遇到的那些奇奇怪怪的问题
  16. Ubuntu16.04开机后黑屏无法进入系统登陆界面
  17. 关于职业生涯发展的一点思考
  18. 【BigDecimal.compareTo 遇到的坑】
  19. RTMP、HTTP-FLV、HLS三大直播协议
  20. 服务器上无法重命名文件夹,linux如何重命名文件和文件夹_网站服务器运行维护...

热门文章

  1. pm模式 raid_如何进入ThinkSystem系列服务器SAS RAID阵列配置界面
  2. Dem Initialization Sequence
  3. uniapp修改data数据后页面未更新渲染
  4. Bugku~想蹭网先解开密码:记录一次kali工具的使用
  5. 结构体排序的三种方式
  6. 三星电视三星服务器没响应,三星液晶电视的常见故障有哪些
  7. 卷积神经网络激励层详解
  8. pc使用android,如何在电脑上使用Android系统在PC上玩玩Android游戏
  9. App Store 上架被拒的那些坑儿
  10. C# 静态内部类单例模式-静态变量何时初始化