我想为我的网站做1000万用户的负载测试。该站点是一个基于Java的web应用程序。我的方法是为所有链接创建一个Jmeter测试计划,然后为1000万用户生成一份报告。然后使用jvisualVM进行性能分析,并检查是否存在瓶颈。
有没有更好的方法来做到这一点?有没有现成的演示可以做到这一点?我是第一次这样做,所以任何帮助都会非常有帮助。
发布于 2011-06-07 18:24:47
我写了博客,就像我进行性能测试的方式:
详细解释请访问:http://www.daemonthread.com/2011/06/site-performance-tuning-using-jmeter.html
发布于 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也需要时间,所以花一点额外的时间在测试工具上不是一种浪费。
发布于 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信息。你必须对数据进行后处理。
这不是一个简单的练习--祝你好运!
https://stackoverflow.com/questions/5645393
复制相似问题