我们使用 BlazeMeter 来评估我们网站处理负载的能力。
我设置了一个简单的脚本,用于登录(使用一个特殊页面,确保每个负载测试用户都有不同的帐户),沿着一个共同的路线访问几个页面,最后生成并下载一份 PDF 报告。这些报告是即时生成的,下载可能需要一点时间才能开始。
1000个并发用户的负载测试结果(下图中10:13达到)如下:
正如我们所料,响应时间随着用户数量的增加而增加,延迟也相应增加。10:13 之后,始终有 1,000 名用户执行脚本。
让我们感到困惑的是 10:25 左右延迟(以及相应的响应时间)的激增。
我们多次运行此测试,所有图表最终看起来都与此类似。在 1,000 个并发用户的情况下,几分钟后会出现一段较长的延迟和响应时间,之后延迟会急剧下降,响应时间趋于稳定。
我们已经与托管服务商讨论过这个问题(托管服务商通常将我们的使用量保持在 4MB,但在使用量高的时候会“爆发”到 100MB),但他们无法解释。我们最初的想法是,在负载较高几分钟后,托管服务商会自动对其网络进行一些操作,以便让我们获得更高的优先级或更快的吞吐量,这导致了几分钟的中断,然后性能得到了提升。
然而,我们的主机商却声称情况并非如此。他们说我们的网速始终是 100MB,但超过某个阈值就只是“计费事件”,不需要他们的系统做任何事情。
什么原因会导致这样的表现?