为什么在我的服务器具有相同配置的情况下增加负载运行器实例的数量时负载测试会提供更好的结果

Why does load testing give better results when I increase number of load runner instances while my server has the same configuration

为什么在我的服务器具有相同配置的情况下增加负载运行程序实例的数量时负载测试会提供更好的结果?

我有休息 api 托管在 apache 服务器上。

使用 1 个 Load runner 实例和 250 个并发用户,我的平均响应时间是 0.8 秒

但是当我将 Load runner 实例从 1 增加到 4 时,我的平均响应时间从 0.8 减少到 0.48。

为什么会这样?想法是对服务器而不是消费者本身进行负载测试。

请帮助我理解为什么会发生这种情况的逻辑

提前致谢

LoadRunner 尽可能快地发送请求(除非您使用lr_think_time() 函数)。

应用程序也尽可能快地响应,并且如果您增加负载吞吐量也应该增加(除非您达到 saturation point

所以最直接的解释是单个负载生成器实例不足以让您的服务器崩溃,很可能是由于虚拟用户数量太少或由于 运行 系统资源不足,例如CPU、RAM、网络或磁盘 IO 容量,请确保您的负载生成器有足够的运行余量,因为当负载超过总可用容量的 90% 时,性能可能会大大降低,尤其是在 x86 系统上。根据您的操作系统,它可能是 top for Unix and derivatives, Resource Monitor for Windows or you might prefer a cross-platform solution like SIGAR or PerfMon

您的负载生成器可能超载了。通过将相同的负载分散到四个负载生成器而不是一个负载生成器,您就不太可能使负载生成器过载并对结果产生负面影响。可能是受到影响的任何有限资源集导致负载生成器速度减慢。

根据经验,我从来没有拥有少于三个负载生成器(两个主要和一个控制)。我还想在任何给定的负载生成器上使用少于 50% 的可用资源池。这包括所有有限资源(CPU、磁盘、内存、网络)