1

我在 Cloud Run 上部署了一个 API,每个请求都会导致对 Cloud Datastore 的读取+写入。大量请求是第一个计时器(从 Datastore 读取将返回 null),因此在其前面添加缓存可能没有太大帮助。

在过去的一个月中,调用 Datastore 并获得数据 ( data = client.get(key, eventual=True)) 的平均挂墙时间为 48 毫秒。有效载荷很小(一个字典列表,平均有 10 个元素,每个字典有两个浮点数)。

我不确定我是否应该说延迟很高,但我的 API 有 100 毫秒的预算来完成它需要做的所有事情并返回。如果只是数据获取需要大约 50% 的时间,我正在寻找优化事物的方法。

问题:

  1. 一般来说,对于从 GCP 中按键获取的相当小的有效载荷来说,50 毫秒听起来如何?
  2. 我对 GCP 中的 Memorystore 有什么期望(就延迟而言)?
4

1 回答 1

3

假设您在同一位置使用 Cloud Run 和 Datastore,我会说 50 毫秒大约是您在数据存储上读取的预期延迟,有效负载的大小对于读取并不重要(10 - 1000 个文档读取不要对处理/传播时间产生很大影响)。

由于您的 API 操作窗口如此之小,因此如果发生一些意外延迟,这确实可能是一个问题。

我从未使用过 Memorystore,因此我无法说出您对实际延迟的期望,但考虑到您的应用程序的每一毫秒都很重要,这可能是一个更好的选择。

于 2020-06-03T16:46:28.863 回答