以jmeter为单位的负载测试结果说明


Explanation of results of load test in jmeter

我做了第一次负载测试,理解起来有些困难。我需要检查项目与php5和php7的配合情况。

结果截图:

php7+nginx

php5+apache

我在谷歌上读到,较低的平均响应时间(蓝线)意味着较高的吞吐量(绿线),但在我的图形上,它是相同的矢量,较大的响应时间意味着较大的吞吐量。这怎么可能是真的?我可能犯了一些错误

是的,php7的平均响应时间更快。但是php5apache和php7nginx之间的差别太小了。

如果需要更多信息,我可以很容易地提供。

如果不知道自己做了什么,就不可能说出任何连贯的话。但是,如果你在一段时间内运行了相当数量的用户,这里有几个想法:

如果吞吐量和平均值都是平的(水平线)(php5+apache则可以是

  • 要么你达到了饱和点,也就是说,如果你在每单位时间内增加更多的用户或请求,吞吐量不会增长,但平均值会增长(变得更糟)

  • 但也可能是,对于给定的负载,jmeter和/或服务器不会更快地处理请求,但您还没有达到饱和点。也就是说,在不改变平均值的情况下,增加更多的用户,或者增加每单位时间的请求数量,都会增加吞吐量。

如果吞吐量在增长,而平均吞吐量相当平稳(php7+nginx

  • 要么是在测试运行时不断增加负载。这可以是有计划的(例如,您从非常缓慢的斜坡上升开始),也可以是无计划的(如,脚本中的某些逻辑导致了这种行为,而您并不打算这样做,或者是JMeter环境中的某些东西导致了这种行为)。在这种情况下,平均值是非常无用的,因为负载较低的平均值会影响负载较高的平均值,尤其是因为偏差确实会一点一点地增长。

  • 或者您的服务器需要一些时间来提升(因此,在运行一段时间后,它能够在每单位时间内处理比测试开始后更多的请求)。所以您甚至还看不到"典型"的性能,因为图结束时吞吐量仍在增加。

  • 如果这种吞吐量持续增长数小时(给定恒定负载),那将非常奇怪。我能想象的唯一情况是,如果故障包含在平均/吞吐量结果中。在某些服务器上,失败比成功的事务快得多(或慢得多)。因此,如果失败是相同平均值的一部分,而且有很多,它们可能会以某种方式影响结果,使结果变得奇怪。

所以我想说,你需要从结果中排除"增长"的吞吐量,并运行更长时间的测试,看看它什么时候稳定下来(它会在某个时候稳定下来,当它达到"水平线"状态时,你可以重置图)。您还可以增加两个测试的负载,看看php5+apache是否真的处于饱和点。