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

时间:2016-11-09 20:40:01

标签: jmeter

我的任务是在客户端的QA服务器上提供服务器性能报告。客户理想地希望用~900个并发用户加载测试,因为这是他们在高峰时间的通常数量。但是,我一直在做的负载测试是将他们的QA服务器快速提升到100%CPU,只有50个并发用户,最终它只是冻结并变得无法使用,所以现在他们只是想知道它们是否是他们的QA服务器问题(CPU / RAM低)或者我采取了错误的步骤。

我在远程服务器上使用JMeter,点击QA服务器(在其网络中)。我在没有监听器的控制台模式下运行它。 QA服务器的四核CPU运行速度为2.50 gHz,4 GB RAM。生产服务器和我正在运行JMeter的服务器是相同的。

我看到一个SO thread说高CPU可能是因为JVM中的内存很高。所以我寻找监视JVM内存使用情况的东西,并遇到了VisualVM。不幸的是,我不太了解它使用它;我把它安装在QA服务器上,但我找不到让它找到在另一台服务器上运行的测试计划的方法。我在启动测试计划后立即开始,但没有任何显示。我确实添加了远程服务器,但我没有看到任何选项。

我应该使用另一个负载生成实用程序还是采取任何其他步骤?

1 个答案:

答案 0 :(得分:0)

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

  1. 逐渐增加负载 ,即使用更改加速时间,以便每隔几秒钟添加额外的用户。
  2. 同时通过ie PerfMon JMeter Plugin
  3. 检查目标服务器的CPU使用情况
  4. 当目标服务器的CPU使用率接近100%时 - 使用Active Threads Over Time Listener
  5. 提及当时有多少用户点击服务器
  6. 继续前进是一个很好的做法,找到问题的根源并检查哪个进程导致高CPU使用率,并根据结果建议将进程移动到另一个服务器(如果是数据库服务器) )或do some profiling如果问题在于测试中的应用程序,以确定哪个组件是CPU密集型的
  7. 有关详细的PerfMon插件配置和使用说明,请参阅How to Monitor Your Server Health & Performance During a JMeter Load Test文章。