【问题标题】:app.yaml: max_concurrent_requests available in python flex environment?app.yaml:在 python flex 环境中可用的 max_concurrent_requests?
【发布时间】:2020-03-21 04:23:28
【问题描述】:

doc of the standard environment 提到可以设置max_concurrent_requests。但是这个设置没有记录在doc of the flex environment?我刚刚在 app.yaml 中使用此选项在 flex env 中部署了一个应用程序,但没有收到错误。那么我可以假设 flex 环境也支持它吗?

当使用 max_concurrent_requests=10 进行 websockets 时,是否会同时有 10 个以上的 websocket 连接导致额外的实例?

【问题讨论】:

  • FWIW 至少一些不适用于/不受某些运行时支持的配置只是默默地容忍(即不会导致错误),但它们实际上并不有效。我会坚持只使用记录在案的。

标签: google-app-engine google-app-engine-python


【解决方案1】:

很遗憾,简短的回答是否定的,App Engine Flexible 中的max_concurrent_requests 不受支持。为了使其正常工作,它必须与target_throughput_utilization 一起使用,但是,一旦您在应用程序的app.yaml 中指定它,就会收到错误消息。

控制应用程序“何时”在 App Engine Flexible 中扩展的方法是通过使用 cpu_utilizationtarget_utilization 指定目标 CPU 利用率。

【讨论】:

  • 感谢您的澄清!但是,我的应用程序正在服务 websockets(使用 asyncio)并且主要是 IO 绑定的。所以在cpu利用率高之前会出现网络延迟。那么有什么建议的方法来确保应用程序在 websocket 出现延迟时扩展?
  • @toonknapen 如果您的应用程序受 I/O 限制,那么 GAE 灵活环境将不是最合适的。改用 GAE 标准会更有意义,并使用 max_concurrent_requeststarget_throughput_utilization 控制缩放。
  • 但我需要 websockets,而这些在标准环境中不可用。那么你有什么建议呢?
  • @toonknapen 我对此进行了一些挖掘,看起来你是对的 - GAE 标准不支持 websockets。在这种情况下,我能看到的唯一其他方法是在GKE cluster with Cloud Run for Anthos 上设置您的应用程序。 Cloud Run 还允许设置最大并发请求数,请参阅here 以供参考。
  • @toonknapen 在documentation 中,您已将不支持它们的声明链接在完全托管时的 Cloud Run 部分下。但是,they are supported in Cloud Run for Anthos 不同,因为它上面提到了基于 GCE 的本机网络层。
【解决方案2】:

【讨论】:

    猜你喜欢
    • 2020-02-10
    • 2021-12-27
    • 2017-06-27
    • 2014-05-05
    • 1970-01-01
    • 2017-08-24
    • 1970-01-01
    • 1970-01-01
    • 2019-12-18
    相关资源
    最近更新 更多