Mic*_*cro 4 google-app-engine google-cloud-endpoints
我有一个简单的 Cloud Endpoints Restful API,它可以做一些简单的事情:添加实体、更新和实体、删除实体、搜索实体。
我的问题是一个 Google App Engine 实例可以处理多少流量?也就是说,在您需要另一个实例之前有多少 API 请求?
我知道有不同的实例类,所以让我们使用默认的B4一个(内存:512 MB,CPU 限制:2.4 GHz)
而且我也知道这可能是一个很难回答的问题,但鉴于我上面描述的简单 API,有人能告诉我一个实例可以处理的平均请求数是多少吗(假设我没有使用 memcache 或任何其他优化)?
任何指向特定文档的链接也会有很大帮助,因为我有点困惑。
谢谢!
仅当服务配置为自动或基本扩展而不是手动扩展时,GAE 才会自动动态生成更多服务实例。
从缩放动态实例:
App Engine 调度程序决定是否使用现有实例(空闲或接受并发请求的实例)处理每个新请求,将请求放入待处理的请求队列,或为该请求启动一个新实例。该决定考虑了可用实例的数量、您的应用程序处理请求的速度(其延迟)以及启动新实例所需的时间。
每个实例都有自己的传入请求队列。App Engine 监控在每个实例的队列中等待的请求数。如果 App Engine 检测到应用程序的队列因负载增加而变得过长,它会自动创建应用程序的新实例来处理该负载。
实际行为还取决于相应的缩放模式配置参数,请参阅更改自动缩放性能设置和缩放元素。当然,还有关于您的应用程序代码如何准确响应这些请求。如果不是不可能的话,要得到一个确切的数字是非常困难的。
但是您可以做的是实际尝试测量它:让测试程序使用典型类型的请求访问您的应用程序,并在您观看时逐渐增加请求负载,在 2 个单独的浏览器窗口中:
您还可以检查您的应用程序的 请求日志以查看它们的处理需要多少。对于其中一些,您甚至可以在 StackDriver 中看到类似 appstats 的跟踪。您还可以启用appstats来获取所有请求的此类数据。
从这些图中,您可以尝试推导出一些最低性能值,这次基于“实例可以处理”的假设意味着实例可以足够快地处理请求,以防止其请求队列深度不断增长,直到实例被杀死(我怀疑这将是一个比触发动态生成新实例的级别高得多的负载级别)。
例如,在我的应用程序中处理一种类型的请求在F1 实例上的大部分时间不到 50 毫秒。由于我已经threadsafe: true配置,因此处理某些请求可能会重叠(有多少 - 我完全不知道)。所以我可以估计 F1 实例每小时可以处理多达 72000个该类型的请求。但是我也有平均 1 秒的请求,同一个实例每小时只能肯定地处理大约 3600 个这样的请求。如您所见,大致价值并没有多大意义。
这就是恕我直言,仪表板数字比估计更好的原因,因为它们是应用程序请求类型及其实际处理的实际范围/传播范围内的平均测量值。例如,将包括多线程增益。
| 归档时间: |
|
| 查看次数: |
3378 次 |
| 最近记录: |