我有一个基于Servlet的应用程序,其中我测量完成对该Servlet的每个请求所花费的时间。我已经计算出简单的统计数据,例如均值和最大值;但是,我想进行一些更复杂的分析,因此我相信我需要对这些响应时间进行建模。
我肯定地说,响应时间遵循一些众所周知的分布,并且有充分的理由相信分布是正确的模型。但是,我不知道这种分布应该是什么。
想到对数正态和Gamma,您可以制作一种适合实际响应时间的数据。是否有人对响应时间应遵循的分布有看法?
我有一个基于Servlet的应用程序,其中我测量完成对该Servlet的每个请求所花费的时间。我已经计算出简单的统计数据,例如均值和最大值;但是,我想进行一些更复杂的分析,因此我相信我需要对这些响应时间进行建模。
我肯定地说,响应时间遵循一些众所周知的分布,并且有充分的理由相信分布是正确的模型。但是,我不知道这种分布应该是什么。
想到对数正态和Gamma,您可以制作一种适合实际响应时间的数据。是否有人对响应时间应遵循的分布有看法?
Answers:
我发现对数正态分布最能描述一段时间内所有用户群中服务器响应时间的延迟。
您可能会在适当命名的站点lognormal.com上看到一些示例,该示例可用于测量站点随时间推移的时延分布以及更多。除了是一个快乐的用户外,我与该网站没有任何隶属关系。这是分布的样子;响应(例如网页加载)时间与响应次数:
请注意,在此图表中,加载时间(X轴)比例是线性的。如果将x轴切换为对数刻度,则分布的形状在峰的右侧看起来会更正常(钟形)。
我的研究表明,最好的模型由以下几项决定:1)您是否关心身体,尾巴或两者?如果不是“两者都”,则对过滤后的数据集建模可能会更有用。2)您想要一个非常简单还是非常准确的一个?即有多少个参数?
如果对1的回答是“两个”,而对2的回答是“简单”,那么帕累托似乎效果最好。否则,如果1是“ body”而2是“ simple”-选择一个过滤的erlang模型。如果1是“两个”,而2是“准确”,则您可能希望对数域中的数据使用高斯混合模型-实际上是对数正态拟合。
我最近一直在对此进行研究,但我发现该主题在公共互联网上覆盖得不够好,因此我写了一篇博客文章,详细介绍了我对该主题的研究。