我试图用JMeter对服务器进行压力测试。我按照手册并成功创建了测试(测试正在运行,响应正确)。
然而即使我不断增加线程的数量它永远不会失败,但我一直在读,必须有限制?我做错了什么?
当我没有运行JMeter时,我的CPU运行+/- 5%。运行3000个线程我看到线程数增加了3000,CPU使用率增加到+/- 15%。 JMeter也从不抱怨出了什么问题。
我的JMeter配置是: 线程数:3000 加速期:30 LoopCount:永远(让它运行一个多小时,但仍然没有出错)
现在的瓶颈是我的互联网连接,它无法处理这种负载,最大速率为2.1Mbps。这会导致问题吗?它将我的延迟从每个线程10毫秒增加到每个线程超过5000毫秒,但线程仍在运行..
答案 0 :(得分:0)
假设您已确认您确实没有收到任何错误(例如使用结果表监听器,或使用结果图监听器仅记录/显示错误)并且您的Internet连接正在运行,那么是,它确实听起来像你的互联网连接是瓶颈。听起来你的服务器根本没有压力。
如果您可以轻松使用其他计算机(例如,与您正在测试的服务器位于同一位置的服务器),您可以尝试使用JMeter远程(分布式)测试来回避您的Internet连接的限制。有关详细信息,请参阅http://jmeter.apache.org/usermanual/remote-test.html。
或者,如果它很容易(例如,如果您在云中使用VM并且可以轻松地在您的软件上使用它),您可以尝试使用功能最少的服务器,并进行压力测试以查看是否你甚至可以通过互联网连接来解决这个问题(就像进行健全检查一样)。
如果这没有帮助,您服务器上的更多详细信息(硬件规格,Web服务器软件和线程池设置,语言)和您正在测试的站点/页面(主要是静态或动态的?大型请求/响应?)将会很有用。我当然设法使用JMeter通过2Mbps连接制造低功率机器(例如EC2 m1.small),但这取决于您正在测试的站点。