负载测试应该在本地还是远程进行?

时间:2019-02-26 09:31:18

标签: nginx jmeter load-testing vps apachebench

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

所以我应该在哪里安装ab,siege,jmeter等工具,在本地的vps上/在我自己的计算机(客户端)上/在另一个Droplet(vps)上通过专用网络访问Web服务器Droplet?

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

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

我迷路了,两种解决方案似乎都错了,所以我想念什么?

2 个答案:

答案 0 :(得分:0)

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

不建议将测试应用程序和负载生成器都放在同一台机器上,因为负载测试工具本身会占用大量资源,并且您可能会遇到两种应用程序都在为资源而“苦苦挣扎”从而无法使用负载生成器的情况发送请求的速度不够快,被测应用程序无法正确处理请求。通常,建议注意测试/负载生成器下的应用程序的资源消耗,以确保两者都有足够的空间,您还可以将越来越多的虚拟用户与增加的资源消耗相关联。如果没有其他选择,可以使用APM toolJMeter PerfMon Plugin

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

答案 1 :(得分:0)

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