AWS云观察"延迟"公制和衡量标准"平均值" api性能测试的摘要报告中的度量标准

时间:2017-09-21 14:26:33

标签: api amazon-web-services testing jmeter load

使用JMeter在AWS上对ELB上的API进行负载/性能测试时,我看到了 AWS云监视Latency metric = 10 ms(似乎很好)和JMeter的摘要报告Average metric = 3000 ms(看起来很糟糕)。

API会返回1MB的JSON数据,但我不明白为什么数字存在这么大的差异,这种api性能是否可以接受? 如果SLA表示API响应时间为100毫秒。

1 个答案:

答案 0 :(得分:1)

您正在研究不同的指标:

  • 延迟JMeter measures the latency from just before sending the request to just after the first response has been received.
  • 经过时间:JMeter测量从发送请求之前到刚收到最后一个响应之后的已用时间。

因此,延迟包含在响应时间中,它是所谓的Time To First Byte,而经过时间是Time to Last Byte。我的期望是你应该坚持JMeter报告的内容,这样你就不会对来自不同来源的指标感到困惑,JMeter至少是开源的,因此你对如何计算指标有信心。

如果3秒的响应时间太长,您可以开始查看原因:

  1. 您的API服务器只是过载,请使用前面提到的Amazon CloudWatchJMeter PerfMon Plugin
  2. 检查CPU,RAM,网络,磁盘使用情况
  3. 您的应用程序配置可能尚未为高负载做好准备。大多数Web /应用程序/数据库服务器默认仅适用于应用程序开发和调试(同样适用于JMeter),因此很可能需要调整基础结构。
  4. 您的应用程序使用非最佳算法。使用profiler tools检查花费时间的位置,“最重”的方法是什么,数据库调用的持续时间等等。
  5. 此外,如果您的应用程序位于ELB后面,JMeter可以缓存其中一个入口节点的IP地址,并且您的所有请求将仅命中一个主机。为避免这种情况,请在测试计划中添加DNS Cache Manager
  6. 参考文献: