【问题标题】:What settings Jmeter require so that concurrent users in Jmeter and on server analysis gets equalJmeter 需要什么设置才能使 Jmeter 和服务器分析中的并发用户相等
【发布时间】:2016-11-17 03:59:32
【问题描述】:

我一直面临一些问题,不确定我是否遗漏了什么或问题来自开发人员方面。

我的 Jmeter 计划是[我正在使用 Ultimate 线程组]:

Start Threads Count: 2000
Initial Delay : 0
Startup Time : 400 Seconds
Hold for Load : 600 Seconds
Shutdown Time : 60 Seconds

根据上述计划,服务器上应该有至少 600 秒的并发 2000 个用户。我可以在 jmeter 中看到所有用户都处于活动状态 600 秒并向服务器发送请求。

问题:

服务器团队说:他们在服务器端只能看到 10 - 15 个并发用户。 负载平衡和数据库团队也这么说。

我问过他们关于在他们的网站上设置并发用户的问题,他们已经允许 10k。

现在这可能是个问题?为什么 Jmeter 显示 2000 个活跃用户,但在服务器上他们只能看到 10-15 个?

我应该在我的测试计划中使用任何其他插件或控件来进行并发负载吗?

【问题讨论】:

  • 那你如何区分不同的用户呢?按用户名?
  • @HoàngLong - 这只是一页的 GET 请求,所以我不需要用户名或其他东西。我假设线程数 = 2000 意味着 2000 个用户。
  • 哦,真不幸。我在想你正在使用某种带有用户登录的测试计划。
  • 同步定时器能帮到我吗?我还不确定。
  • 与其他答案和 cmets 一起,单台机器的 2000 个用户似乎太多了。如果你在做分布式测试,没问题。如果没有,请检查 CPU %。

标签: jmeter jmeter-plugins


【解决方案1】:

我可以在 jmeter 中看到所有用户都处于活动状态

在哪里可以看到?在 JMeter GUI 的右上角使用绿色方块?使用监听器?使用HTML Reporting Dashboard?


JMeter 默认配置仅适用于测试开发和调试,在运行负载测试时,您需要调整一些参数以获得最佳性能。您需要做的主要事情是:

  1. 在 JMeter 启动脚本中增加 JVM 堆大小
  2. Run your test in command-line non-GUI mode
  3. Disable all the listeners

【讨论】:

  • 是的,我可以看到右上角的绿色角落。即 2000/2000
  • 在这种情况下,很可能是由于 JMeter GUI 成为瓶颈。考虑遵循9 Easy Solutions for a JMeter Load Test “Out of Memory” Failure 文章中的建议,您应该会得到更好的结果。
  • 当然我要检查一下。但是对于 60% 的请求,我得到了错误:连接超时。那是jmeter还是本地机器问题还是服务器端问题?
  • 很可能是服务器端问题。连接超时是指JMeter线程/用户发送TCP SYNC信号建立连接,但服务器端所有连接都处于BUSY状态,拒绝接受连接。请看服务器端配置,比如 maxConnections(在 tomcat 中,默认为 200)
  • @Naveen - 我明白了。好的。
【解决方案2】:

并发用户与您在 Ultimate Thread Group 中定义的用户数量不同,但它是整个测试的结果以及您如何配置测试计划。

以下是决定并发性的一些关键因素:

  1. 用户总数:数量越多,并发用户越多。成正比
  2. 循环计数:在整个测试过程中保持线程活跃是主要因素。检查您指定的值。通常它将设置为Forever,以便线程在整个测试过程中处于活动状态。
  3. 用户思考时间(测试计划中的计时器):您指定的思考时间越多,并发性越少。间接成比例。
  4. 服务器响应时间:服务器响应请求的时间越长,并发性越低。间接成比例。
  5. 系统资源(客户端机器 (JMeter) 和服务器机器):资源利用率越高,服务器响应时间越长,最终导致并发性降低。
  6. 服务器配置:服务器配置肯定会影响系统。在高配置的机器中保持较低数量的线程会导致低并发,反之亦然。关注服务器的以下属性,maxThreads(可以在服务器上运行以支持多个客户端)、maxConnectionsacceptCount 等(我提供的名称与 tomcat server 相同,命名可能因服务器而异服务器)

所以,请检查这些因素如何决定测试的并发性。

使用 Listener jp@gc Active Threads Over Time 了解活动线程。

【讨论】:

    【解决方案3】:

    并非所有 vuser 都保持已建立的连接。我想你可以检查一下是否建立了真正的 2000 个连接。在运行测试时,只需在 Linux 中使用“netstat”命令即可显示 Jmeter 进程的 tcp 连接数。处于“ESTABLISHED”状态的连接应该与服务器相同。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-09-24
      • 2016-01-12
      • 1970-01-01
      相关资源
      最近更新 更多