使用JMeter对5000多名用户进行性能测试的最佳方法

时间:2014-11-08 14:18:40

标签: jmeter load-testing performance-testing

我必须测试我的网站API(更糟糕的是它在页面上加载了50个API)。我需要为大约5000多名用户测试此类案例。从单个主机,我从一台机器运行350个用户(350 * 50 api),它运行良好,没有太多的错误。现在我要为6000个用户测试这个案例。我有17个正在运行测试的奴隶,还有1个正在收集统计数据的主人。我想知道,如果这是正确的方法。很多时候我看到套接字相关的错误,我相信是由于我的主人的线程限制。测试此方案的正确方法是什么。一个主人可以拥有多少奴隶。

我的网站托管在谷歌应用引擎服务器上,它通过监控流量动态添加新服务器,但我的团队中没有人知道谷歌在什么时候添加服务器。他们说它确实独立,无法控制。我想知道我们将需要多少服务器来定期支持5000多个用户。

人们通常如何测试这种情况。

2 个答案:

答案 0 :(得分:0)

我建议你从较少的奴隶开始,可能是2或4,并通过监控主服务器,所有从服务器和被测服务器上的资源来确定他们可以实现的负载。

对5000个用户的目标使用缓慢的渐变测试。对于服务器上的典型负载,缓慢的斜坡趋于更加真实,并在线程之间创建固有的时序随机性。

根据测试的复杂性和服务器的响应时间,每个从站每秒可以进行数千次交易。

更多的奴隶意味着更多的主人负荷,必须整理所有结果。我从来没有达到极限,但我让我的奴隶努力工作。

使用上述方案,当您看到主要或从属达到限制的资源时,您可以添加更多资源(即更多内存,CPU等)或更多从属。

答案 1 :(得分:0)

我能够在AWS群集上成功运行相同的方案。 我正在使用套接字错误,因为我使用的是奴隶,不是很高的配置。因此,在某些时候,峰值很高,奴隶正在给出套接字错误。 AWS上的相同工作顺利进行。 关于谷歌的硬件使用情况,没有明确的方法可以找到确切的计数但范围。我确实多次运行我的测试,并根据范围(不断波动),我得到了较小的主机消耗范围。

在本地群集上运行测试时的一个重要观察:Windows机器(它是Windows XP)与Linux相比,处理请求量更少。 Linux从来没有给我套接字错误,但Windows。硬件配置完全相同。