哪种分布最常用于建模服务器响应时间?


16

我有一个基于Servlet的应用程序,其中我测量完成对该Servlet的每个请求所花费的时间。我已经计算出简单的统计数据,例如均值和最大值;但是,我想进行一些更复杂的分析,因此我相信我需要对这些响应时间进行建模。

我肯定地说,响应时间遵循一些众所周知的分布,并且有充分的理由相信分布是正确的模型。但是,我不知道这种分布应该是什么。

想到对数正态和Gamma,您可以制作一种适合实际响应时间的数据。是否有人对响应时间应遵循的分布有看法?

Answers:


17

我发现对数正态分布最能描述一段时间内所有用户群中服务器响应时间的延迟。

您可能会在适当命名的站点lognormal.com上看到一些示例,该示例可用于测量站点随时间推移的时延分布以及更多。除了是一个快乐的用户外,我与该网站没有任何隶属关系。这是分布的样子;响应(例如网页加载)时间与响应次数:

对数正态分布

请注意,在此图表中,加载时间(X轴)比例是线性的。如果将x轴切换为对数刻度,则分布的形状在峰的右侧看起来会更正常(钟形)。


在我看来,此PDF确实看起来像是Fréchet。
usεr11852恢复单胞菌说,

4

示例图。 请参阅文章以获取更多深度。

我的研究表明,最好的模型由以下几项决定:1)您是否关心身体,尾巴或两者?如果不是“两者都”,则对过滤后的数据集建模可能会更有用。2)您想要一个非常简单还是非常准确的一个?即有多少个参数?

如果对1的回答是“两个”,而对2的回答是“简单”,那么帕累托似乎效果最好。否则,如果1是“ body”而2是“ simple”-选择一个过滤的erlang模型。如果1是“两个”,而2是“准确”,则您可能希望对数域中的数据使用高斯混合模型-实际上是对数正态拟合。

我最近一直在对此进行研究,但我发现该主题在公共互联网上覆盖得不够好,因此我写了一篇博客文章,详细介绍了我对该主题的研究。


1
感谢您的图表。基于您拥有的(大致)三峰分布,我相信这不是一个简单的(单一服务器)设置。您似乎拥有一些较慢的中间件或后端。当面向用户的服务器等待可能被缓存的后端子系统响应时,这些会导致整体响应变慢。同样不清楚X和Y轴代表什么。您是否颠倒了加载时间(最初是X轴)和计数(最初是Y轴)?
arielf 2015年

感谢您的反馈意见!源数据集比ping更类似于ping,而不是Web服务请求,但是我想三峰分布主要是由于两件事:1)主要的双峰不对称性是由于两条网络路径,而2)长尾的第三位组件是由于tcp错误恢复方案所致。不过,这只是个猜测……我的主要重点是各种模型的经验效用,而不是过程和理论。我不确定您要问的关于反转轴的问题,但是...您有示例图吗?
安德鲁·查内斯基

另外,我对草率的图形表示歉意。x轴为微秒,y轴为概率密度。(是的,我知道。。。抱歉。请参阅笔记本电脑中的可重复性科学。)
Andrew Charneski 2015年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.