首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何使用jmeter和visualVM进行负载测试?

如何使用jmeter和visualVM进行负载测试?
EN

Stack Overflow用户
提问于 2011-04-13 14:45:14
回答 5查看 11.3K关注 0票数 9

我想为我的网站做1000万用户的负载测试。该站点是一个基于Java的web应用程序。我的方法是为所有链接创建一个Jmeter测试计划,然后为1000万用户生成一份报告。然后使用jvisualVM进行性能分析,并检查是否存在瓶颈。

有没有更好的方法来做到这一点?有没有现成的演示可以做到这一点?我是第一次这样做,所以任何帮助都会非常有帮助。

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2011-06-07 18:24:47

我写了博客,就像我进行性能测试的方式:

  1. 确保服务器(硬件可以符合转移/生产要求)没有其他可能影响性能的安装。
  2. 在DB中设置用户,可以使用一个过程,可以作为jmeter测试计划的一部分调用。
  3. 将jmeter安装在单独的机器上,这样jmeter就不会影响性能。
  4. 在jmeter中为所有的uri创建一个测试计划(如图1所示),带有响应检查和基于计时器的请求。使用jmeter.
  5. Check作为低性能uri的初始基准测试,这些是bottlenecks.
  6. Try的不同性能改进选项的预期要点,但一次只关注一个瓶颈。
  7. 尝试步骤6中的任何一个修复,然后进行基准测试。如果有任何改进,请提交更改并从步骤5重复。否则,请恢复并尝试步骤6中的任何其他选项。
  8. 下一步将是使用负载平衡、硬件扩展、群集等。这可能包括一些物理设置和硬件/软件成本。提供包含可伸缩性选项的结果。

详细解释请访问:http://www.daemonthread.com/2011/06/site-performance-tuning-using-jmeter.html

票数 0
EN

Stack Overflow用户

发布于 2011-04-19 20:45:17

你走在正确的道路上,但你的负载限制是一个很高的因素。

为什么我说这是因为您的站点可能需要更多的机器来处理10Milj并发用户。一个单独的进程可能很难处理并发的32K TCP流。还要计算一下实际处理10Milj用户所需的带宽。

现在我不知道您打算在您的站点上提供什么样的服务,但是当您想到JVisualVM会使处理速度减慢10倍(或者更多用于方法跟踪)时,如果您让JMeter和JVisualVM同时工作,您实际上不会测量“真实世界”。

当您在较低的负载下运行时,JVisualVM更有用。

要创建一个好的度量,首先要确保你有一个好的基线。使用10个并发用户进行测试,连接JVisuamVM并让其运行一段时间,而不是降低所有有趣的值。

有了基线之后,就可以开始添加更多的负载了。添加10倍的负载(ea: 100个用户),看看JVisualVM中的变化。继续这样做,直到JVisualVM明显减慢你的速度,每次添加额外的负载时,确保你已经写下了你感兴趣的数字。在图表中画出这些数字。

现在..。根据您想要的用户数(手动)内插图。这适用于内存使用、磁盘访问等,但不适用于使用的CPU时间,因为JVisualVM将占用CPU并在上面给出无效的数字(特别是如果你打开了方法跟踪)。

如果你真的想要高达10Milj的用户,我也不会信任JMeter,我会写一个我自己的小测试程序来执行你想要的测试。这是可以的,因为设置站点来处理10Milj也需要时间,所以花一点额外的时间在测试工具上不是一种浪费。

票数 7
EN

Stack Overflow用户

发布于 2011-04-20 13:28:36

仅仅因为您在数据库中有1000万个用户,并不意味着您需要使用那么多用户进行负载测试。想想看--你的网站真的会同时拥有1000万用户吗?对于web应用程序,1:100注册用户的比率很常见,即您不太可能在任何时候拥有超过100K的用户。

JMeter能处理这样的负载吗?我怀疑。请尝试使用faban。它非常轻量级,可以在单个虚拟机上支持数千个用户。在创建工作负载时,您还具有更好的灵活性,并且还可以自动监控整个测试基础架构。

现在进入分析部分。你没说你用的是哪台服务器。任何Java应用程序服务器都将提供足够的监控支持。商业服务器提供了很好的GUI工具,而Tomcat通过JMX提供了广泛的监控。在深入到JVM级别之前,您可能希望从这里开始。

对于JVM,在运行如此大的性能测试时,您确实不希望使用VisualVM。除了支持这样的负载外,我还假设您正在使用多个appserver/JVM实例。主要的性能问题通常是GC,所以使用JVM选项来收集和记录GC信息。你必须对数据进行后处理。

这不是一个简单的练习--祝你好运!

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5645393

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档