performance - SSD 性能参数 - 延迟与 IOPS?
问题描述
据说 SSD 最常用的性能指标是:吞吐量 (MBps)、IOPS 和延迟 (ms)。我对后两者有点困惑,因为:
- IOPS - 衡量每秒完成了多少输入输出操作
- 延迟 - 一个 IO 操作从开始到结束需要多长时间
(从这里获取定义:https ://www.custompcreview.com/articles/iops-throuhput-latency-understanding-ssd-hdd-storage-performance-benchmarks/ )因此,如果延迟定义了 I/O 处理的持续时间操作,我会天真地得出结论,IOPS = 1/延迟(至少对于深度队列 = 1)。但显然情况并非如此。那么这里有什么区别呢?我知道 SSD 受益于大队列深度(并发 I/O 操作的数量),但即使这些操作是并发的,每秒 I/O 操作的总数也会与 I/O 延迟成反比,不会它?
解决方案
我将从这里引用,因为这篇文章回答了您的需要: https ://storageswiss.com/2013/12/10/what-is-latency-and-how-is-it-different-from-iops/
为了保持 IOPS 性能,存储系统需要足够多的待处理数据请求可用(在队列中),以便少数单个请求的延迟不会对系统的整体 IOPS 性能产生不利影响。当队列深度较低时,延迟成为存储性能的更大决定因素,而在基于闪存的存储系统中,队列深度较低(或没有)很常见。
虽然需要足够的事务队列来实现 SSD 性能,但大队列深度实际上可以在短期内掩盖延迟。本质上,系统每秒可以处理来自队列的大量事务(高 IOPS),但仍然需要相对较长的时间来完成这些事务(长延迟)。因此,在短期内 IOPS 可能看起来不错,即使系统在长期内提高性能的能力很差。由于这些原因,延迟通常是衡量 SSD 系统性能的比 IOPS 更重要的指标。
摘要:延迟会影响 IOPS,但不会以一致的方式影响。因此,它被视为仅次于 IOPS 的 SSD 的另一种衡量标准。
推荐阅读
- apache-camel - 将消息回滚到死信队列 - Apache Camel
- android - 指定的目录或数据库文件不存在
- amazon-web-services - AWS S3 getObject 无法通过 PHP SDK 读取对象内容
- php - 这种类型的 if 参数在 PHP 中的计算结果是什么?if(!a=foo()) { //代码}
- unity3d - IsTriggerEnter 似乎在 Unity 中不起作用
- git - 使用 Github Desktop 进行 Git 合并 - 未合并更改
- c# - 记录 ASP.NET Core 中的配置更改
- regex - 正则表达式,删除重复的非中断字符串
- android - 白名单 Firebase 分析和谷歌分析
- python - 有条件地设置锦标赛的回合数(OOP,python)