我现在用python开发了一个appengine应用程序,当我试图优化我的应用程序的成本和性能时,我对我得到的实例小时数配额感到惊讶。
我现在正在测试一个特定的task_queue。(在此期间没有运行任何其他内容-在我启动之前,没有任何实例在运行)
队列配置速率为100,存储桶为100。没有为max_concurrent_requests配置限制
900个任务将被推入此队列。10-11个实例在这一刻弹出来处理它。
每件事都需要不到30秒的时间,而且每个任务都会被执行。
我在这之前和之后检查了我的实例小时配额,我消耗了大约0.25 - 0.40个实例小时。
为什么会这样呢?
不是应该少很多吗?打开一个实例是否有初始费用或最低费用?
发布于 2013-01-27 00:37:58
打开实例时,至少需要15分钟。您的10-11实例应该总共花费您大约2.5小时。
如果您不需要如此快速的处理,则应该使用max_concurrent_requests限制队列的并行处理量。
发布于 2013-01-27 04:41:04
我非常确定,当高速率队列上有任务积压时,调度器会增加实例计数。100/100是一个非常高的比率。您告诉Scheduler非常快地执行这些操作,这意味着它会启动实例来执行此操作。
除非您需要非常快速地处理这些任务,否则您应该使用一个低得多的速率。这将导致更少的实例和更长的任务队列。根据您的处理需求,您可以使用拉取队列。这样做允许您一次租用和处理数百个任务,并利用批处理put()等。这取决于您正在做什么。
https://stackoverflow.com/questions/14538971
复制相似问题