2016-12-12 219 views
0

我有一个简单的Cloud Endpoints Restful API,它可以添加一个实体,更新和实体,删除一个实体,搜索一个实体。一个Google App Engine实例可以处理多少个请求?

我的问题是一个Google App Engine实例可以处理多少流量?也就是说,在你需要另一个实例之前有多少个API请求?

我知道有不同instance classes所以我们只使用默认B4一个(内存:512 MB,CPU极限:2.4 GHz)的

而且我也知道这可能是一个难以回答的问题,但给出的简单以上描述的API,任何人都可以启发我一个实例可以处理的请求的平均数量(让我们假设我没有使用memcache或任何其他优化)?

任何指向特定文档的链接也会有很大帮助,因为我有点困惑。

谢谢!

+0

我不认为你会有这个答案。这取决于1你在做什么,2你有多关心表现。 – natario

+0

你究竟是什么意思*“你需要另一个实例”*? –

+0

https://cloud.google.com/appengine/pricing –

回答

2

仅当服务配置为自动或基本缩放但不适用于手动缩放时,GAE才会自动动态生成更多服务实例。

Scaling dynamic instances

的应用程序引擎调度器决定是否服务于与现有的实例中的每个新的请求(或者一个是空闲或接受 并发请求),则把请求在挂起请求队列,或 为该请求启动一个新实例。该决定考虑了可用实例的数量 ,您的应用程序有多快( )服务请求(其延迟)以及将新实例启动 需要多长时间。

每个实例都有自己的传入请求队列。 App Engine监视每个实例队列中等待的请求数量。如果 由于负载增加,App Engine会检测到应用程序的队列变得太长,因此会自动创建 应用程序的新实例来处理该负载。

实际行为还取决于各自的缩放模式配置参数,请参阅Change auto scaling performance settingsScaling elements。当然,您的应用程序代码是如何响应这些请求的。非常困难,如果不是不可能得到确切的数字。

但你可以做什么是真正试图测量它:有一个测试程序访问具有典型的请求的类型,并与你的应用逐渐增加请求负载,而你看,在2个单独的浏览器窗口:

  • 产生新实例(通过查找伴随信息消息的请求日志,指示新实例已启动或通过检查实例页面)
  • 仪表板摘要中的相关屏幕将显示实例启动时应用的感兴趣统计信息

您也可以检查您的应用程序的request logs看看他们的处理需要多少。对于其中的一些人,你甚至可以在StackDriver中看到类似于appstats的跟踪。您也可以启用appstats以获得全部您的请求的此类数字。

从这些数据中,您可以尝试推导出一些最低性能值,这次基于“实例可以处理”的假设意味着实例可以足够快地处理请求,以防止其请求队列深度不断增长该实例被终止(我怀疑这个负载级别会比触发新实例动态产生的级别高很多)。

例如,处理中的一种请求类型,我的应用程序在F1实例上大部分时间内的时间少于50毫秒。因为我配置了threadsafe: true,所以处理一些请求可能会重叠(多少 - 我完全不知道)。所以我可以估计,F1实例可以处理该类型每小时的72000个请求。但我也有平均1秒的请求,同样的情况下,每小时只能确定地处理大约3600个这样的请求。正如你所看到的一个球场的价值并没有真正的意义。

这就是为什么恕我直言,仪表盘数字比估计好,因为他们是测量在您的应用程序的请求类型及其实际处理的真正范围/散布平均。例如,多线程增益将被包括在内。

+0

我明白了......你说的我已经阅读了大部分内容,但它仍然没有真正回答一个实例可以处理多少个请求(例如,使用1进行手动缩放)的问题。这是5000英里每小时一个小时吗?或者是什么? (一般不会对你大喊)。有时候新的实例会产生,因为我没有找到任何理由,所以只是看着仪表板可能不够科学。感谢您的写作。我会继续解决它。 – Micro

+0

测量是科学的,即使仪器的精度很糟:) :) –

+0

关键是我正在寻找一个粗略的数字哈哈。希望别人也考虑过同样的事情。 – Micro

相关问题