我是靠谱客的博主 兴奋发卡,最近开发中收集的这篇文章主要介绍性能指标:队列深度、IOPS与时延,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

队列深度,更显然地说是指未完成的(outstanding)的I/O数目,或指测试工具中的"threads"表示的数目。这是性能测试的一个关键指标。

具体地讲,这些概念是指测试工具一次下发的最大I/O数目,而不管测试工具、OS等的限制。对于测试工具(如vdbench)来讲,一个请求从主机下发到存储,存储完成后返回到主机,这才算是这个I/O的一个完整周期。对接深度是指主机始终维持的,未返回到主机中的请求数目。

在深入理解之前,需要先理解IOPS和时延(latency)。

按定义来讲,每个“thread”是指一次单线程I/O操作。对于一个线程来说,一个新的I/O在当前正在处理的I/O完成之前不能下发开始工作。这样就可以给出一个清晰的定义:每个请求的完成时间(如时延)和单位时间内能够完成的请求数目(如IOPS)。

举例说明,当threads=1,即队列深度1,若每个IO花费0.1s(即100ms),那么最大IOPS就是10。若每个IO花费0.02s(即20ms),则最大IOPS就是50。更通用点地讲,对于每个线程,我们可以最多生成(1/L) IOPS,其中L表示单位为秒的时延。而若队列深度为queueDepth,则IOPS为queueDepth/L。

在根据vdbench结果实际计算的时候,可能会稍有偏差,这是因为vdbench会有一些额外消耗(addtional overhead)。

vdbench等工具允许增加threads/outstanding IO来提升IOPS,但是

参考:https://blog.docbert.org/queue-depth-iops-and-latency/

最后

以上就是兴奋发卡为你收集整理的性能指标:队列深度、IOPS与时延的全部内容,希望文章能够帮你解决性能指标:队列深度、IOPS与时延所遇到的程序开发问题。

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

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

评论列表共有 0 条评论

立即
投稿
返回
顶部