使用Google App Engine进行网站负载测试

时间:2011-02-28 09:41:04

标签: python google-app-engine stress-testing

Azure,亚马逊和其他基于实例的云提供商可用于执行网站负载测试(通过启动运行程序的大量实例,将请求发送到一组URL)我想知道我是否能够这样做使用Google App Engine。

到目前为止,情况似乎并非如此。我目前唯一能想到的实现是设置每个以最高频率执行的cron作业的最大数量,每个任务请求一堆URL,同时弹出task queue中的其他任务。

根据我的计算,这仅足以启动最多25个并发请求(因为应用程序可以maximum 20 cron tasks每次执行的频率不超过每分钟一次,并且默认队列的吞吐率为{ {3}}

任何想法,如果有一种方法,我可以有更多的并发请求以自动方式获取URL?

2 个答案:

答案 0 :(得分:4)

taskqueue API允许每个队列每秒100个任务调用,并具有以下最大活动队列配额:

免费: 10个活动队列(不包括默认队列)

结算: 100个活动队列(不包括默认队列)

每个任务使用一个UrlFetch,乘以 [最大活动队列数] * [每秒最大调用任务数] * [60秒] ,您可以达到这些名义上的Urlfetch调用率:< / p>

<强>免 11 * 100 * 60 = 66000 Urlfetch通话/分钟

<强>结算: 101 * 100 * 60 = 606000 Urlfetch通话/分钟

这些费率受number of allowed UrlFetch per minute quota

的限制

<强>免 3,000次通话/分钟

结算: 32,000次/分钟

如您所见, Taskqueue + Urlfetch API 可以有效地用于满足您的负载测试需求。

答案 1 :(得分:2)

针对公共网址进行负载测试可能不如将目标服务器直接连接到同一台交换机上那样准确。有这么多无法控制的网络效应。

根据您的具体情况,我建议您借用一些桌面盒并使用它们。任何一半体面的机器应该能够每分钟产生2-3千个电话。

那就是说,真的取决于您希望实现的目标规模。