当前位置: 首页 > 知识库问答 >
问题:

JMeter负载测试导致目标服务器达到100%CPU

岳玉堂
2023-03-14

我看到一个SO线程说高CPU可能是因为JVM中的高内存。因此,我寻找监视JVM内存使用的工具,并遇到了VisualVM。不幸的是,我对它的理解不够好,无法使用它;我把它安装在QA服务器上,但我想不出一种方法让它找到在其他服务器上运行的测试计划。我在开始测试计划后立即启动它,但什么也没有显示出来。我确实添加了远程服务器,但我看不到任何选择。

我是否应该使用另一个负载生成实用程序或采取任何替代步骤?

共有1个答案

姚实
2023-03-14

恭喜你找到了瓶颈。如果目标服务器不能处理100个用户,则应通过以下方法确定它可以支持的最大用户数:

  1. 逐渐增加负载,即使用更改斜坡上升时间,这样每几秒钟就会增加额外的用户。
  2. 同时通过PerfMon JMeter插件检查目标服务器CPU的使用情况
  3. 当目标服务器的CPU使用率接近100%时-提到当时有多少用户使用活动线程时间侦听器访问服务器
  4. 接下来,一个很好的做法是弄清问题的根源,检查哪个进程导致了CPU占用率高,根据结果,您可以建议将该进程移到另一个服务器(如果是数据库服务器),或者在测试中的应用程序出现问题时进行一些分析,以确定哪个组件是CPU占用率高的

有关详细的PerfMon插件配置和使用说明,请参阅JMeter负载测试中如何监视服务器运行状况和性能的文章。

 类似资料:
  • 我想用Jmeter和bitbucket服务器负载测试下面的场景。 通过jmeter对bitbucket服务器负载测试git克隆和git更新操作。 最初将有20个用户向bitbucket服务器发出克隆请求,20个用户向bitbucket服务器发出git更新请求。 在jmeter中为测试配置了多个git repo和多个用户。 由于这些都是非浏览器操作(git克隆操作),我不知道如何提取准确的url击中

  • 当我使用ant任务运行时(ant-Dtest=test-DThreads_CE=10-DRampUp_CE=10-DLoop_CE=1): 只有1个线程启动,我收到包含的请求的错误: > "非HTTP响应代码:java.net.SocketException-非HTTP响应消息:网络不可达:连接" 在调试时,我观察到我的build.xml没有参数到达从机。所以每个参数默认为“1” 但是,当相同的脚

  • 我们目前对应用程序的负载测试是使用jMeter完成的,到目前为止运行良好。我们有三个不同的线程组,可以通过命令行标志分别启用和配置。还可以从命令行配置线程数和目标吞吐量。 我正在寻找的是为每个线程组编程负载场景的可能性。通常jMeter启动所有线程,然后尝试达到其目标吞吐量速率。我想要实现的如下:我配置目标吞吐量速率为每秒500个请求,启动速率为20,增量为20,持续时间为5分钟。jMeter应该

  • 我正在尝试使用Jeter针对SQLServer 2008 R2数据库设置基本负载测试。但是,当仅使用一个用户运行测试时,我收到错误。 响应消息:com。微软sqlserver。jdbc。SQLServerException:用户XXX登录失败。ClientConnectionId:。 这是我的JDBC连接配置数据库URL: jdbc: sqlserver://Serverame: 1433; Da

  • 主要内容:创建JMeter测试计划,添加采样器,添加监听器,保存并执行测试计划,验证输出,添加吞吐量控制器,验证输出在本节中,我们将学习如何使用吞吐量控制器在JMeter中创建分布式负载测试计划。 出于测试目的,我们将在我们网站 www.yiibai.com 的URL下的某些网页上创建分布式负载。这些网页包括: 主页: www.yiibai.com 第1页(Java): www.yiibai.com/cplusplus/ 第2页(C语言): www.yiibai.com/cprogramming

  • 要做什么? 我们在 Sharepoint(企业)服务器上部署了一个应用程序,该应用程序使用 Windows 凭据登录到该应用程序。 > 应用程序URL格式:http://testmachine:1000/sites/test/ 视窗凭据格式: user_id@domain.co.in 目标是为如此数量的用户在应用程序上执行负载/性能测试(尤其是登录功能)。 通常,当我在Firefox/IE中点击应