Openwhisk:增加并发请求数

Openwhisk: increase number of concurrent requests

我有一个分布式 Openwhisk 设置,当我尝试一次对一个用户执行超过 30 个请求时,我收到以下错误:

error: Unable to invoke action 'prime-number': Too many concurrent requests in flight (count: 30, allowed: 30)

知道如何增加这个数字吗?

如果您使用 ansible 方法部署 OpenWhisk,您可以使用以下 ansible-playbook 环境变量覆盖进行部署

-e limit_invocations_per_minute=999999 -e limit_invocations_concurrent=999999

如果您正在进行其他类型的部署,则需要部署控制器容器并设置相应的环境变量以覆盖任何这些相关值。

  "LIMITS_ACTIONS_INVOKES_PERMINUTE": "{{ limits.invocationsPerMinute }}"
  "LIMITS_ACTIONS_INVOKES_CONCURRENT": "{{ limits.concurrentInvocations }}"
  "LIMITS_TRIGGERS_FIRES_PERMINUTE": "{{ limits.firesPerMinute }}"
  "LIMITS_ACTIONS_SEQUENCE_MAXLENGTH": "{{ limits.sequenceMaxLength }}"

添加到@csantanapr 答案,您可以将它们添加到 openwhisk.yml 剧本。

ansible-playbook -i environments/<environment>  -e limit_invocations_per_minute=999999 -e limit_invocations_concurrent=999999 openwhisk.yml

如果使用非ansible方式运行 openwhisk,可以参考the issue here. You can also refer to this.

您可以修改文件core/standalone/src/main/resources/standalone.conf。如果你看这部分:

config {
  controller-instances = 1
  limits-actions-sequence-maxLength = 50
  limits-triggers-fires-perMinute = 60
  limits-actions-invokes-perMinute = 60
  limits-actions-invokes-concurrent = 30
}

您可以修改 limits-actions-invokes-concurrent 的值和任何其他限制。

然后,当您 运行 openwhisk 时,您需要通过 -c 参数和 --args 参数提供文件。像这样:

sudo ./gradlew core:standalone:bootRun --args='-c /path/to/openwhisk/core/standalone/src/main/resources/standalone.conf'

就是这样。


您也可以“构建然后 运行”,像这样:

sudo ./gradlew :core:standalone:build
sudo java -jar ./bin/openwhisk-standalone.jar -c /path/to/openwhisk/core/standalone/src/main/resources/standalone.conf