我正在使用 jmeter 工具测试我的应用程序。我在 ELB(非自动缩放组)后面有 2 个 EC2 m1.small 实例,2 个缓存节点巨大的 RDS 数据库(多可用区)。我的 Apache(peforked)配置了默认值,例如 256 maxclients。两者都可以处理 256-256 请求。现在,当 jmeter 抛出 500 个请求时,我在 jmeter 的一个采样器中看到连接超时错误。谁能弄清楚问题是什么?
提前致谢。
我正在使用 jmeter 工具测试我的应用程序。我在 ELB(非自动缩放组)后面有 2 个 EC2 m1.small 实例,2 个缓存节点巨大的 RDS 数据库(多可用区)。我的 Apache(peforked)配置了默认值,例如 256 maxclients。两者都可以处理 256-256 请求。现在,当 jmeter 抛出 500 个请求时,我在 jmeter 的一个采样器中看到连接超时错误。谁能弄清楚问题是什么?
提前致谢。
JMeter 会返回什么?有几件事可能发生。
连接重置:如果您的 JMeter 抛出此错误,则表示服务器已满负荷,无法支持更多并发请求。即分配的 256 个线程都在为其他请求提供服务,这基本上意味着你已经达到了服务器的限制。
“地址已在使用”异常:这些类型的错误是您在进行负载测试时不能遇到的。这基本上意味着您的系统上没有可用端口发出更多请求并且所有端口都处于忙碌状态。这可能由于多种原因而发生,但您可以尝试调整系统设置,例如 ulimit for linux,或者如果您使用 Windows 框,您可能需要查看 tcpTimedWaitDelay 和相应设置以查看要处理的端口的平均周转时间回到活动池中以供下一个连接重用。这种情况称为 tcp 端口耗尽 ( http://www.outsystems.com/NetworkForums/ViewTopic.aspx?TopicId=6956&Topic=How-to-tune-the-TCP%2FIP-stack-for-high-volume-of-网络请求)
为了解决这个问题,您还可以尝试分布式负载测试和/或使用计时器来确保您始终拥有端口来建立新连接。