负载测试应该在本地还是远程完成?

问题描述 投票:0回答:2

我正在为我的网站使用vps,所以我不相信我可以从本地网络或其他东西访问它。 我使用digitalocean作为vps。

那么我应该在哪里安装像ab,siege,jmeter等工具本地在vps /我自己的计算机(客户端)上/在同一区域的另一个droplet(vps)上,并通过专用网络连接到web服务器droplet?

根据我的理解,如果我在vps本身上使用这些工具,他们可能会使用太多的cpu和ram(web服务器使用相同的cpu和ram)来使测试正确。

另一方面,由于网络瓶颈,远程测试可能会导致错误值。如果我在同一个子网上使用另一个vps(例如digitalocean专用网络功能),是这种情况吗?

我迷路了,两种解决方案都显得不对,所以我错过了什么?

nginx jmeter load-testing vps apachebench
2个回答
0
投票

最好的选择是将负载生成器安装在与被测应用程序位于同一子网中的另一个VPS上 - 这样您就可以获得更多“干净”的结果,而不受connect times / latency的影响

建议同时使用同一台计算机上的应用程序和负载生成器,因为负载测试工具本身是非常耗费资源的,当两个应用程序都在为资源“挣扎”时可能遇到这种情况,因此负载生成器无法发送请求足够快,正在测试的应用程序无法正确处理请求。一般情况下,建议关注测试/负载生成器下的应用程序的资源消耗,以确保两者都有足够的空间,您还可以将越来越多的虚拟用户与增加的资源消耗相关联。如果您没有任何替代方案,您可以使用APM toolJMeter PerfMon Plugin

作为后备,您可以使用本地计算机进行测试,但请确保您有足够的带宽(您可以使用ie https://www.speedtest.net/服务进行检查),并且您的ISP了解您的计划,并且不会阻止您进行欺诈行为(如它可能被认为是DOS attack


0
投票

我们使用Amazon Webservices的Unix机器作为负载生成器获得了良好的结果。当负载生成器位于同一网络中时,您不会像Dimitri提到的那样干净。但是你会得到一个真实的结果,比如最终用户也会得到它。在我们的场景中,我们评估执行期间的一些关键值,如CPU,数据库连接和测试期间db中已更改数据集的数量。我们多次重复测试,因为结果总是存在一些差异。同一网络中的负载测试将提供更稳定的结果,并且可以与实验室中的测量进行比较,但我认为了解应用程序在现实中的行为非常好。

© www.soinside.com 2019 - 2024. All rights reserved.