最近,我在 Google App Engine 上的服务负载出现了短暂的急剧增加。负载从~1-2 req/second 到大约 10 req/second 大约几个小时。我的动态实例数量迅速增加,但在此过程中,我确实收到了一些“请求等待时间过长”的超时消息。
所以下一次,我想准备好足够的空闲实例来处理我的负载。但现在的问题是,我如何确定多少才足够。我预计这次的负载会有更大的爆发——从几乎没有请求到平均每秒 500 个请求,峰值可能达到 3000 个。这将持续 15 分钟到 1 小时。
我的主要目标是确保通过 HTTP Post 传递的信息通过单次写入保存到数据存储区。
以下是我为准备爆发所采取的步骤:
- 我修剪了禁用分析和其他报告的快速路径,这些报告通常会生成 2 个 urlfetch 请求。
- 数据存储写入将通过延迟库延迟到任务队列
我想知道的是: 1. 计算每 N 个请求/秒需要多少空闲实例的提示/见解。2.好像一个任务队列的最大吞吐量是500/秒。这是你可以推动任务的速度吗?如果不是,那有上限吗?我猜不是,因为这些可能只是数据存储写入,但我想确定。
如果我对保存这个快闪族的所有信息没有信心,我的后备计划是设置一个强大的 Amazon EC2 实例,在其上运行一个 Web 服务器,并让我的客户向这个服务器发送一个备份请求。