实例的管理方式

实例是 App Engine 在自动扩缩应用时使用的计算单元。在任何给定的时间,您的应用都有可能在一个或者许多实例上运行,传入的请求会分配到所有这些实例。

采用手动和基本扩缩方式的实例应该无限期运行,但其正常运行时间没有保证。硬件或软件故障可能会毫无征兆地出现,导致实例提前终止或频繁重启,这些故障可能需要相当长的时间才能解决。

所有柔性实例都会每周重启一次。重启期间,在有向后兼容的关键补丁时,底层操作系统会自动更新。应用的映像将保持不变,而不会受重启影响。

运行状况检查

App Engine 会定期发送运行状况检查请求,以确认实例是否已成功部署,并检查正在运行的实例是否保持正常运行状态。每个运行状况检查都必须在指定的时间间隔内获得响应。如果一定数量的连续运行状况检查请求都未能得到实例的响应,该实例会被判定为运行状况不佳。运行状况不佳的实例不会收到任何客户端请求,但系统仍会向其发送运行状况检查。如果该实例仍然无法响应运行状况检查,且连续失败数量达到预定值时,则该实例将被重启。

有两种类型的运行状况检查:活动性和就绪性。 活动性检查确认实例及其容器正在运行,重新启动未通过检查的实例。就绪性检查确认实例已准备好接受传入请求,而不是将请求转发到未通过检查的任何实例。两者都可以通过应用的 app.yaml 文件进行自定义。

运行状况良好的应用以 HTTP 状态代码 200 响应运行状况检查。

监控资源使用量

通过 Cloud Console 的“实例”页面,您可以查看实例的性能。该页面会提供每个实例的内存和 CPU 用量、正常运行时间、请求数及其他统计信息。您也可以对任何实例手动启动关停过程。

实例位置

实例将根据项目设置,自动分配到适当的地理区域。

实例扩缩

当应用正在运行时,传入请求将被路由到适当的服务/版本的现有实例或新实例。每个活跃版本必须至少运行一个实例,服务/版本的扩缩类型控制着额外实例的创建方式。您可以在 app.yaml 文件中配置扩缩设置。扩缩类型分为两种:

自动扩缩
自动扩缩会根据请求速率、响应延迟时间和其他应用指标来创建实例。您可以为每个指标指定阈值,以及指定实例数下限,以始终保持运行状态。
手动扩缩
手动扩缩会指定持续运行的实例数量,无论负载水平如何。这种类型支持复杂初始化等任务,以及持久依赖内存状态的应用。