获取#1040 - 使用5000个VU和JMeter测试的连接太多

时间:2014-01-14 05:19:32

标签: jmeter

我正在使用大约265或更多用户的JMeter测试负载测试,然后它不会给我结果。我的数据库给出了“#1040 - 连接太多”。 它只适用于100个用户。 所以请告诉我,我可以为测试1000个用户或更多用户做些什么.. 我的系统配置是带有核心决斗处理器的4gb Ram .. 我是一名PHP开发人员,因此在负载测试和服务器配置方面没有更多的知识。

2 个答案:

答案 0 :(得分:2)

默认情况下,MySQL支持150 + 1连接,此行为可通过max_connections变量控制。请参阅MySQL文档的C5.2.7,了解如何增加它。如果您使用默认值,我猜您还需要使用其他参数,请阅读具有innodb前缀的变量。

对于Apache(如果您使用Apache与PHP),默认连接数为256.请参阅MacClientsStartServersMaxRequestsPerChild等指令。

JMEter位。在您描述的硬件上运行的JMeter的一个实例将无法提供超过100-150个线程,300个绝对最大值。您需要考虑JMeter Remote Testing才能创建5000+用户加载。但您需要了解以下内容:

  1. 避免使用像View Results Tree这样的“重型”听众(这对于调试非常有用,但在严重负载的情况下肯定会导致崩溃)
  2. 避免大多数“图形”听众
  3. 确保您在mode=StrippedBatch文件中设置了user.properties选项。
  4. 关注其他JMeter Performance and Tuning提示

答案 1 :(得分:1)

您的问题,如果确实存在问题,则取决于您对数据库的使用情况。它与您正在使用的压力工具无关。连接太多可能意味着您必须增加MySQL实例接受的连接数,或者您没有正确关闭连接并泄漏连接,或者仅仅是您的应用程序无法有效处理此类负载。

无论如何,请调查您的应用程序方面,而不是压力工具。