【问题标题】:Can Cloud Run respond in less than 200ms?Cloud Run 能否在 200 毫秒内响应?
【发布时间】:2019-08-20 02:38:41
【问题描述】:

Cloud Run 的响应时间似乎超过了 400 毫秒。即使是重复调用(我假设是“热身”容器)。

我部署了一个简单的 node.js 服务(参见下面的代码),它以静态 JSON 响应。

服务端点不需要用户认证。我打电话给 us-central1(来自美国加利福尼亚州文图拉县)

我调用该服务并获得超过 400 毫秒的延迟。有时我会看到 5000-6000 毫秒的延迟。范围!

我了解 Cloud Run 处于测试阶段,但我希望 Google 能就我对性能和大约性能的预期提供反馈。什么时候。另外,如果我配置错误,请告诉我。如果你有比我更好的结果 - 请让我知道你在做什么不同。

我部署的服务:https://github.com/dorongrinstein/cloudrun-dummy-service

测试代码:https://github.com/dorongrinstein/cloudrun-test

我希望输出为两位数毫秒。范围。 我得到的输出在 3 位数的中间范围内。

仅供参考 - 我在加利福尼亚州文图拉县。我的互联网连接很好。我使用了 gcpping.com,我到 us-central1 的中位延迟为 70 毫秒。

【问题讨论】:

  • 您是否考虑过 Cloud Run 等无服务器环境中冷启动成本的现实情况?在新的服务器实例中首次访问函数会产生在调用之前实例化该服务器实例的成本。
  • 你如何计算延迟?您在云运行日志中看到了什么?您是否正在与其他组件交互?
  • 从我提供的代码示例中可以看出,我不与任何其他组件交互。我计算延迟,如我的第二个示例所示(请参阅 github cloudrun-test repo)。
  • 见下文。我提交了 50 个请求,然后暂停 5 秒(容器应该仍然处于启动状态),然后他们又提交了 50 个请求。请求仍然需要大约 500 毫秒。或者更多。这似乎不是冷/热启动问题。

标签: google-cloud-run


【解决方案1】:

是的,Cloud Run 可以在 200 毫秒内做出响应。

您似乎遇到了bug in our networking infrastructure,现在应该已修复。

【讨论】:

  • 是的,现在一切都很好。到目前为止,我对 Cloud Run 非常满意。保持良好的工作。感谢您的响应和包容。
【解决方案2】:

根据this Cloud Run engineer,您应该预计 Cloud Run 中的冷启动时间与 Cloud Functions 中相似。

您可以尝试的一件事是提升您的容器的memory limit。至少在 Cloud Functions 启动延迟has been found 高度依赖于内存分配。

【讨论】:

  • 在云端运行中,增加内存不会增加 CPU 速度,云端功能会。
  • 如果我提交 50 个请求然后暂停 5 秒,然后提交 50 个后续请求,我仍然会得到大约 500 毫秒。 (或有时 8000 毫秒的行为)。所以,这不是一个冷启动。它是一个正在运行(应该是)的容器,响应速度慢得令人无法接受。
  • 好的。如果您想绝对确定这不是冷启动的情况,您可以check your logs。你的concurrency limit怎么样,默认80?
  • 容器镜像 URL gcr.io/dorongrinstein-bw/dummy@sha256:50a8dd4cde481b5fa654f1b70249aaff0cacb2cae81f366508a2e0fa581ba580 内存分配 256MiB(默认)并发(系统管理)请求超时 5 分钟(默认)服务帐户默认计算服务帐户环境无 Cloud SQL 连接 无
猜你喜欢
  • 2012-03-10
  • 1970-01-01
  • 2022-06-13
  • 2021-10-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-03-17
  • 2014-09-10
相关资源
最近更新 更多