我的服务器是否太弱,无法运行具有150个并发用户的简单JMeter测试计划?

我的服务器是否太弱,无法运行具有150个并发用户的简单JMeter测试计划?,jmeter,performance-testing,load-testing,taurus,Jmeter,Performance Testing,Load Testing,Taurus,我正在尝试使用JMeter创建一个负载测试。我有一个非常简单的测试计划: 包含所有标准HTTP Cookie管理器、缓存管理器等 包含具有一百万个有效用户名的CSV数据集配置 它访问登录页面并提交用户名以获得授权 然后,它访问一个执行一些数据库请求的页面, 显示结果 我可以用80个并发用户和30秒的加速时间成功运行它。如果我超过这个标准,事情就开始一团糟了。大多数情况下,测试都被卡住了,我最终不得不用Ctrl+C取消它。如果我在之后查看日志,我没有发现任何错误,看起来就像中途中止了测试。我也

我正在尝试使用JMeter创建一个负载测试。我有一个非常简单的测试计划:

  • 包含所有标准HTTP Cookie管理器、缓存管理器等
  • 包含具有一百万个有效用户名的CSV数据集配置
  • 它访问登录页面并提交用户名以获得授权
  • 然后,它访问一个执行一些数据库请求的页面,
    显示结果
我可以用80个并发用户和30秒的加速时间成功运行它。如果我超过这个标准,事情就开始一团糟了。大多数情况下,测试都被卡住了,我最终不得不用Ctrl+C取消它。如果我在之后查看日志,我没有发现任何错误,看起来就像中途中止了测试。我也尝试过在金牛座运行我的测试计划,但那也会冻结,如果我在事后查看日志,就不会有错误

我已经完成了本指南中列出的大部分内容,但只是想澄清一些事情:

  • 我不在GUI中运行测试
  • 我在测试计划中没有侦听器
  • 我已经将Java堆大小增加到28 GB
  • 我获取嵌入式资源,但仅从域内获取
  • 承载网页的环境应该能够轻松处理150多个用户
我使用的服务器是一个非常弱的虚拟机。当我运行测试并查看“top”时,平均负载为20-30,考虑到服务器有4个核心,这显然太高了。但当我在网上看的时候,人们似乎很容易在普通笔记本电脑上运行3-500个并发用户的测试,所以我仍然怀疑还有其他错误

服务器规格:

  • 运行Oracle Linux Server 7.5的虚拟机
  • 英特尔至强E5-2650 v3的4核,2.3 GHz
  • 32 GB内存
是否有任何明显的东西我丢失了,或者我的服务器太弱了`

提前谢谢! 致意

  • 您的堆设置对于您的设置来说可能太高,您应该能够使用几GB的堆模拟150个并发用户,而不会出现任何问题。因此,您的操作系统可能会执行大量操作,从而导致高磁盘IO

  • 另一个原因是JMeter在发送下一个请求之前等待响应,如果您没有合理的超时,并且服务器无法响应,那么测试将永远不会结束。因此,考虑引入连接和响应超时,最好的方法是使用,这样您可以在一个地方设置超时,并且它们将被传播到所有采样器

  • 考虑设置对服务器的监视,因为它可能只是缺少CPU或RAM,因此不会响应。您可以为此使用或

  • 在测试基础架构和中间件组件(应用程序/web服务器、数据库、负载平衡器、反向代理等)下检查您的应用程序。这些家伙需要针对高负载进行调整,因为他们的默认配置适合于开发/调试,但不适合于负载测试/生产

  • 考虑使用附加到应用程序的或重新运行测试-这样,您将能够知道瓶颈是什么,即哪个组件会减慢整个系统的速度


  • 谢谢你的回答!事实证明,我错过了超时,现在为200个并发用户运行测试非常有效。然而,我仍然无法使用Taurus框架使其工作。如果我使用bzt命令运行完全相同的jmx文件,它最终会被卡住。如果我查看“top”,我会看到JMeter的java进程以3-400%的负载运行了一会儿,然后完成。在那之后,bzt进程被完全100%的负载卡住了,直到I Ctrl+C为止。你能猜出是什么原因造成的吗?