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

机器算法验证 分布 互联网
2022-01-20 15:43:41

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

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

想到对数正态和伽玛,您可以制作任何一种适合真实响应时间的数据。有谁知道响应时间应该遵循什么分布?

2个回答

数正态分布是我发现在描述一段时间内所有用户群的服务器响应时间延迟方面最好的分布。

您可能会在恰当命名的站点lognormal.com上看到一些示例,该站点的业务是测量站点延迟分布随时间的变化等等。除了作为一个快乐的用户之外,我与该网站没有任何关系。这是分布的样子;响应(例如网页加载)时间与响应数:

对数正态分布

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

示例图。 更多深度请参见文章。

我的研究表明,最好的模型取决于几件事:1)你关心的是身体,尾巴,还是两者兼而有之?如果不是“两者”,则对过滤后的数据集进行建模可能会更有用。2)你想要一个非常简单还是非常准确的?即多少个参数?

如果 1 的答案是“两者”而 2 是“简单”,那么 Pareto 似乎效果最好。否则,如果 1 是“主体”而 2 是“简单” - 选择过滤的 erlang 模型。如果 1 是“两者”而 2 是“准确”,您可能需要对数域中的数据使用高斯混合模型 - 实际上是对数正态拟合。

我最近一直在研究这个问题,但我发现在公共互联网上对这个话题的报道不够好,所以我写了一篇博客文章详细介绍了我对这个话题的研究。