我现在正在python中开发一个appengine应用程序,我很惊讶我得到的实例小时配额,而我尝试优化我的应用程序的成本和性能。
我正在测试一个特定的task_queue。 (没有其他任何东西在运行期间 - 在我开始没有实例之前)
队列配置的速率/ s为100,有100个桶。 没有配置max_concurrent_requests的限制
900个任务将被推入此队列。 在这个时刻弹出10-11个实例来处理它。
一切都需要不到30秒,每项任务都会执行。
我在之前和之后检查我的实例小时配额,我消耗了大约0.25 - 0.40个实例小时。
为什么会这样?
不应该少得多吗?如果一个实例打开,是否会收取初始费用或最低费用?
答案 0 :(得分:1)
当一个实例打开时,它将花费你至少15分钟。您的10-11个实例总共需要花费大约2.5小时 如果您不需要这样的快速处理,则应使用max_concurrent_requests限制队列的并行处理量。
答案 1 :(得分:1)
我很确定当高速队列上存在任务积压时,调度程序将增加实例数。 100/100是一个非常高的比率。您告诉调度程序非常快速地执行这些操作,这意味着它会启动实例。
除非您需要非常快速地处理这些任务,否则您应该使用更低的费率。这将导致更少的实例和更长的任务队列。根据您的处理要求,您可以使用拉取队列。这样做可以让你一次租赁和处理数百个任务,并利用批量put()等等。真正取决于你在做什么。