我是靠谱客的博主 土豪外套,最近开发中收集的这篇文章主要介绍了解 IOPS、延迟和存储性能,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

当大多数人考虑存储性能时,他们会考虑吞吐量(每秒的传输数据量)。但吞吐量与汽车的最高速度相似。事实上,你几乎永远也达不到汽车的最高速度。因为在大多数情况下,相关性并不是很强。

例如,像汽车加速的速度以及汽车处理弯道和弯道的程度等属性通常比其最高速度更重要。此示例还适用于存储性能。

大多数人都知道,SSD 通常比普通的机械硬盘驱动器(HDD)快得多。但与这些设备的吞吐量无关。它的所有关于输入/输出操作每秒(IOPS)。如果你能处理大量的IOPS,这才是应用程序在一般条件下评测的性能。但IOPS并没有告诉你整个性能指标。更确切地说:IOPS 是一个毫无意义的数字(顺序写和随机写差别很大),除非与平均延迟和某个请求大小(使用 I/O 处理的数据量)挂钩。让我们首先关注 IOPS 和延迟,然后讨论请求大小。

latency

延迟是处理单个 I/O 请求的速度。这一点非常重要,因为一个存储子系统,可以处理1000个IOPS,平均延迟为10ms,可以处理5000个IOPS的平均延迟50ms。特别是如果应用程序对延迟(如数据库服务)敏感。

这是一件非常重要的事情:IOPS和延迟之间是如何相互关联的。在这里,想象一下你是在一个超级市场,这是一个特别的超市,顾客(IO/S)由收银员(磁盘)以平均10ms的速度提供服务。如果您将一秒与 10ms 分开,我们了解此收银员可以处理每秒 100 个客户,但一次只有一个,因为收银员是连续工作的。

serial

很明显,虽然收银员可以处理每秒100个客户,但他不能同时处理他们!因此,当客户到达收银机时,在 10ms 处理时间内,第二个客户到达时,该客户必须等待。一旦等待的客户由收银员处理,处理该客户仍然只需要 10ms,但过度处理时间可能是 15ms 或最坏的情况 (两个客户同时到达) 甚至 20ms。

queue

因此,了解磁盘可以处理平均延迟为 10ms 的单个 I/Os 非常重要,但应用程序认为的实际延迟可能更高,因为某些 I/Os 必须排队等候。

这个例子还说明,排队等候会增加处理特定 I/O 的延迟。因此,如果您增加了 Read I/O 队列,您会注意到平均延迟将增加。更长的队列将意味着更高的延迟,但也意味着更多的 IOPS!!!

queue 4

这怎么可能?磁盘驱动器如何以延迟为代价突然进行更多的随机 IOPS?诀窍在于存储子系统可以智能,查看队列,然后以使磁盘的实际访问模式更加序列化的方式订购 I/Os。因此,磁盘可以以平均延迟增加为代价提供更多的 IOPS。根据已实现的延迟和应用层的性能要求,这是可以接受的还是不能接受的。

最后

以上就是土豪外套为你收集整理的了解 IOPS、延迟和存储性能的全部内容,希望文章能够帮你解决了解 IOPS、延迟和存储性能所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(48)

评论列表共有 0 条评论

立即
投稿
返回
顶部