4

我有一个在 App Engine 中运行的网络服务器,而客户端是一个移动应用程序。我看到一旦我们扩展到很多用户,移动设备上的很多请求都开始失败。但是,我在我们的日志中没有看到任何故障。我注意到在我们的配额中,我们的ip address in useforCompute Engine API最大值为 8(即使我们没有在 Compute Engine 上运行任何服务)。我不确定这是否是根本原因,但以前不是这样,我想知道是否有任何关于如何解决这个问题的建议,或者是否有更好的方法来构建我们的服务器以满足我们的用例。

编辑:我们当前的配置是 App 引擎上的 flex 环境,至少有 2 个实例。我们还有一个 MySQL 实例。到目前为止,我们使用的几乎所有东西。

runtime: php
env: flex

api_version: 1

handlers:
- url: /.*
  script: public/index.php

runtime_config:
  document_root: public

beta_settings:
    # for Cloud SQL, set this value to the Cloud SQL connection name,
    # e.g. "project:region:cloudsql-instance"
    cloud_sql_instances: "<project>:<region>:<sql-instance>"
4

1 回答 1

5

您在问题中没有提到它,但我相信您使用的是 App Engine 柔性环境。在后台,App Engine flex 应用在您项目中的 Compute Engine 实例上运行(对您隐藏)。因此,它实际上也违反了 Compute Engine 配额,包括您的 App Engine 区域的“正在使用的 IP 地址”。

“正在使用的 IP 地址”会影响您的 App Engine flex 应用程序,因为它会限制您的应用程序能够扩展到的实例数量,因为每个实例都使用自己的 IP。例如,根据您提供的 app.yaml 文件,您的扩展设置默认为自动扩展,最少 2 个实例,最多 20 个实例。当使用您的应用程序的用户数量增加时,“使用中的 IP 地址”配额将阻止您的应用程序升级超过 8 个实例。

需要注意的另一件事是,您的服务的早期版本可能仍在运行。如果它们具有相同的扩展设置,这意味着它们将至少运行 2 个实例,这也将计入“正在使用的 IP 地址”配额。

由于您无法将 App Engine 实例部署在您为 App Engine 应用设置的另一个区域的网络中,因此这里唯一的解决方案是请求增加配额。在您的开发者控制台中,进入 IAM & admin > Quotas,选择此特定配额并单击顶部的“编辑配额”按钮并按照说明进行操作。

于 2018-10-25T15:55:47.277 回答