如何根据负载测试测量(例如每秒最大点击次数)安全地估计最大用户数?

如何根据负载测试测量(例如每秒最大点击次数)安全地估计最大用户数?

就我的具体情况而言,我从事的是网站工作,但问题比这更普遍。我正在寻找(我认为)类似于公式的东西。

实际情况是,我已经进行了负载测试,以确定服务器的临界点。我知道,每秒超过 100 次点击会导致服务器过载,性能令人无法接受。很容易就能将这个数字推算为每小时 360,000 次点击(100×60×60)。

问题出现在我收到来自市场部的问题,例如“对于我们的下一个广告活动,我们可以处理多少访问者?”他们使用的数字是这样的,“200 万人将看到我们的广告。根据过去的经验,我们知道其中约 10% 的人会点击,因此 20 万访问者将访问该网站。我们能处理吗?”如果这 20 万访问者均匀分布在一小时内,上述数字告诉我们服务器可以很好地处理负载。但如果访问者仍然分布在一个小时内,但大多数访问者在前 15 分钟访问了网站,情况会怎样?该网站将超载(100×60×15 < 200,000∕2)。

答案显然取决于点击量的分布。不幸的是,我没有过去的数据。那么,频谱两端的网站(分布均匀的网站和分布高度集中的网站)的典型分布是什么?如果你不知道,没关系,因为我可以在一个单独的问题中重新询问这部分内容。更重要的是:

假设我知道分布情况,我该如何应用这些知识根据每秒最大点击次数确定给定时间间隔内的最大访问者数量?

到目前为止,我都假设一个访问者意味着一次点击。实际上,每个访问者都会在网站上点击一次或多次。为了考虑到这一点,我是否可以简单地取每个访问者点击次数的平均值,然后进行相应的划分?或者我必须考虑每个访问者的页面浏览量分布(例如,90% 的访问者点击一页,5% 点击两页,5% 点击两页以上)?

最后要说的是,这一切都需要大量的猜测。这个模型(理论上)会给我们一个最大数字,但在传递之前,你会把这个数字退后多少?你对表达结果的不确定性有什么看法?

答案1

这不是猜测,而主要是统计数据。这就是为什么在没有任何数据的情况下对类似情况进行预测极其困难的原因。命中的分布将遵循某种曲线 - 要知道您的系统是否可以处理负载,您需要查看顶峰曲线并将其与您的极限进行比较,同时考虑到如果估计错误,您将需要某种“安全区”。确定安全区的“工程”方法是取最大数,并将过度工程至少增加 2 倍。如果系统故障会导致非常高的成本,或者更准确地说,如果过度工程的成本与故障成本相比微不足道,则需要调整过度工程系数。

点击率/访问者率是网站或应用程序设计的函数,因此理论上可以计算出来。但如果网站具有相当大的复杂性,统计方法也会简单得多。

相关内容