【发布时间】:2016-01-28 11:39:01
【问题描述】:
这就是应用程序设置的方式 -
- 2 个 c4.8xlarge 实例
- 10 个 m4.4xlarge jmeter 客户端生成负载。每个客户端使用 70 个线程
在对简单的 GET 请求(685 字节大小的页面)进行负载测试时。经过一段时间的测试运行后,我遇到了吞吐量降低的问题。使用 700 个线程达到约 18000 个请求/秒的吞吐量,在此水平上保持 40 分钟,然后下降。在整个测试过程中,线程数保持 700。我用不同的负载模式执行了测试,但结果是一样的。
整个测试过程中应用程序的响应时间相当短 -
根据 ELB 监视器,请求数量减少(我想因此吞吐量较低) -
在测试运行期间没有遇到任何错误。我还使用 http 请求设置了连接超时,但没有错误。
我与 aws 支持人员详细讨论了这个问题,根据他们的说法,我在测试执行期间没有受到任何网络限制的阻碍。
给定的线程数在测试运行期间保持不变,这些线程在做什么?是否有一个指标可以让我查看 JMeter 客户端实例生成的请求数(不是 Hits/sec)?
测试计划 - http://justpaste.it/qyb0
【问题讨论】:
-
你能发送共享 JMX 文件吗?至少设置。你让它永远循环吗?
-
我没有循环,用测试计划的链接更新了我的问题
-
您是否检查过常见的系统问题,例如jmeter 自己的内存大小(即,它可能花费更多时间进行 GC 而不是应该的)。第二个常见问题是当 JMeter 耗尽端口的速度比 TIME_WAIT 后可用端口的速度快(因此减少 TIME_WAIT 并增加可用端口的数量会有所帮助)。第二个问题也可能适用于服务器端。
-
我还会尝试查看是否有一半的 jmeter 产生一半的负载(即,如果 1 jmeter 的吞吐量保持不变,则问题可能出在服务器端;如果减少一半,比在 jmeter 上)。
-
因为我没有得到 java.net.BindException 可能的端口不是问题。
标签: amazon-web-services jmeter