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

标签 nginx jmeter load-testing vps apachebench

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

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

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

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

我迷路了,两种解决方案似乎都是错误的,那么我错过了什么?

最佳答案

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

不建议在同一台机器上同时测试应用程序和负载生成器,因为负载测试工具本身非常耗费资源,并且您可能会遇到两个应用程序都“挣扎”资源的情况,因此负载生成器无法胜任发送请求的速度不够快,并且被测应用程序无法正确处理请求。一般来说,建议密切关注测试/负载生成器下的应用程序的资源消耗,以确保两者都有足够的空间,您还可以将虚拟用户数量的增加与资源消耗的增加关联起来。您可以使用APM tool或者 JMeter PerfMon Plugin如果您没有任何替代方案。

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

关于nginx - 负载测试应该在本地还是远程进行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54882301/

相关文章:

java - 参数化 JMeter HTTP 请求路径

json - JMeter CLI 报告生成失败 - org.apache.jmeter.report.dashboard.GenerationException : Data exporter "json"

docker - 错误:getaddrinfo EAI_AGAIN(docker,nginx)

java - 扩展 JMeter 还是编写复杂的场景?

nginx - 为什么Docker https-portal的 “See It Work”部分给我一个 “port 443: Connection refused”错误?

maven - 如何单独使用 GUI 在 Jmeter 中生成 HTML 文件?

java - Jmeter以重复的方式顺序运行单个线程组

google-app-engine - 如何在开发环境中测试后端实例的并发?

linux - 当 php fpm 进程崩溃时会发生什么?

module - Nginx gzip 过滤器不适用于我的自定义处理程序