GAE: 如何量化前端实例小时使用量?
我们正在Google App Engine上开发一个Python服务器,目的是处理每分钟大约1,000到3,000个的HTTP POST
请求。每个请求都会触发一些数据存储的写入操作。此外,我们还会开发一个网页客户端,作为人们使用的界面,用来展示和分析存储的数据。
首先,我们想估算一下GAE的使用情况,以便对未来的费用有个大概的了解,这个费用主要是根据请求的数量来计算的。对于数据存储的写入操作和数据存储的大小,估算起来相对简单,但对于前端和后端实例的使用时间就不太好估计了。
根据我的理解,每当有请求进来时,系统会启动一个实例,这个实例会运行15分钟。如果在这15分钟内又有请求进来,就会继续使用同一个实例。这里就有点复杂了:如果有两个请求在同一时间到达(在每分钟3,000个请求的情况下,这并不奇怪),Google会启动另一个实例吗?这样的话,Google就会额外计算至少0.15个实例小时的费用。此外,我也不太确定一个网页客户端如果持续从数据存储中读取数据以展示和分析信息,会如何增加实例的使用时间。
有没有人知道一个可靠的方法来计算实例小时数,并做出有意义的估算?我们想用这些信息来了解在GAE上运行一个应用程序的费用,与单纯租用一个网页服务器相比,哪个更贵。
1 个回答
没有一种方法可以百分之百准确地评估前端实例的使用小时数。因为一个实例可以同时处理多个请求。此外,调度程序的算法(也就是启动这些实例的系统)并没有被谷歌公开说明。
根据你的代码需求,我认为一个标准的F1实例最多可以同时处理5个请求,这个是上限。2个请求会更安全一些。
我的建议是,如果可以的话,模拟一下你的网站在有限用户下的标准互动,看看实例数量是怎么变化的,然后再推算。
举个例子,假设你模拟每分钟100个请求,持续2小时,你发现GAE为此启动了5个实例,那么你可以推算出,如果持续有3000个请求每分钟的话,在同样的2小时内大约需要150个实例。为了安全起见,我会把这个数字翻倍,最后得出大约需要300个实例的估算。