问题标签 [hey]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
performance-testing - 在负载测试期间随机输入 URL
我正在使用 apache bench 和 hey 工具进行负载测试。我需要测试一个用于注册新服务的端点。此端点的 URL 将包含服务名称,并采用 json 正文,其中必须包含相同的服务名称。例如:
与请求一起发送的 json 正文
现在如何为每个新请求更改serviceName ?
任何帮助表示赞赏。
load-testing - 如何使用 OpenFaas 函数说明并发优势?
我正在试验 OpenFaas 并尝试评估让多个工作人员提供相同功能的性能优势(商店提供的默认 shasum 功能)。我有一个由三个“小”(1vcpu 2gb ram)一个“中”(1vcpu 4gb ram)和一个“大”(2vcpu 4gb ram)VM 组成的集群。调度由 Kubernetes 完成,中型和大型 VM 无需托管任何托管在小型 VM 上的功能。该hey
工具用于执行多个调用,并且我通过 API 手动生成工作器(即额外的 pod、函数的实例)。组件的 8080 端口gateway
被端口转发到 localhost ( kubectl port-forward -n openfaas svc/gateway 8080:8080 &
),并且使用类似于以下的命令行进行函数的调用:
hey -n 50 -c 3 -m POST -D 50large.txt http://localhost:8080/function/shasum
或者
hey -n 20000 -c 600 -m POST -d test http://localhost:8080/function/shasum
(第一个测试一个 30Mb 文件的 50 个 shasum,另一个测试一个小请求的 600 个并发发布者,20000 次)。调用是从“大”虚拟机进行的,它不能托管任何功能 pod(封锁)。
有时,我注意到如果我调用具有大量并发请求或大文件输入的函数,网关无法转发这些请求并且端口转发被破坏(例如,当使用第一个命令时,将 -c 3 替换为-c 5,用于 5 个并发生产者)。
但是即使端口转发没有被破坏(即使用-c 3),我也会得到一些不容易解释的结果。考虑下面的执行日志,该案例连续使用三个工作人员(功能 pod),均匀分布在三个小型 VM 上:
而另一个执行日志,它只使用一个工作人员(一个函数 pod):
为什么使用多个功能 pod 只能取得稍微好一点的结果?任何人都可以提出一种方法来验证使用多个工人实际上比使用单个工人更好,使用这个或相关设置?